Skip to main content

An easy accessible library of basic test flows and reporting engines.

ByteBlower ® is a traffic generator/analyzer system for TCP/IP networks.

This library provides you with the building blocks for:

  1. Generating test traffic

  2. Collect statistics

  3. Analyze traffic statistics

  4. Generate reports

Quick start guide

Get started right away? Have a look at our Installation & Quick start guide.

Release notes

What can this version bring to you? See our exciting new and existing features below!

Note: Have a look at our Versioning for more information about how releases are handled for the ByteBlower Test Framework.

Test Cases

The ByteBlower Test Framework serves as the base for many of our customer’s test cases.

At Excentis, we also develop common test cases and love to share them with the community.

📢 New since v1.4.0! 📢

It is with great pleasure that we announce our new features of the ByteBlower Test Framework!

  • Test Case: DOCSIS 4.0 ATP - ✨ New!

    • Guided MULPIv4.0 LL-04.40 Part 1 certification traffic test and analysis.

  • Extended IPv6 support

    • Running traffic tests with IPv6 ports behind a firewall

    • Manual IPv6 address configuration

  • Features for post-processing

    • Port captures

    • Sequence numbers in frames

  • Several small improvements in runtime and documentation.

Features

  • Quick and easy automation of traffic tests using ByteBlower

  • Straightforward building blocks for your own test scripts

    • Grouped in self-explaining categories

    • Designed with a small 😉 to the workflow you are used to from the GUI

  • Command-line interface

    • Run traffic tests with nothing more than a JSON configuration file!

  • Supported ByteBlower endpoint types

    • ByteBlower Port (on a physical interface of a ByteBlower server)

    • ByteBlower Endpoint (mobile testing via app on your device)

  • Endpoint configuration

    • IPv4

      • DHCP and manual address configuration (ByteBlower Port only)

      • Automatic handling of endpoints located behind a NAT/NAPT gateway!

    • IPv6

      • DHCPv6, SLAAC and manual address configuration (ByteBlower Port only)

      • ByteBlower Endpoint: Automatic resolving of Endpoint host’s IPv6 address for each traffic flow.

  • Traffic types

  • Application simulations

    • Voice over IP (VoIP) using the G.711 codec

    • Traditional gaming (ByteBlower Endpoint only as destination)

    • Video streaming (Netflix, YouTube, …) (ByteBlower Port only)

  • Standard analysis

    • Frame count: transmitted and received over time, frame loss and byte loss

    • Latency: Minimum, maximum, average and jitter over time

    • TCP

      • Average goodput on HTTP (layer 5)

      • Transmitted and received Bytes over time

      • TCP average throughput over time

      • Minimum, maximum and average Round Trip Time (RTT)

      • TCP Retransmission counts

      • ECN Congestion Experienced (CE) markings (for L4S-enabled TCP flows)

    • Aggregation of results over multiple flows (frame blasting only)

    • PASS/FAIL criteria can be provided to match your KPIs

    • Post-processing support - Port captures - Frame sequence number injection

  • Application-specific analysis

    • Mean Opinion Score (MOS): Specific for Voice flows

    • Video buffer analysis: Specific for Video flows (ByteBlower Port only)

  • Reporting

    • Summary and realtime results

    • HTML: Neat to share with your chief, customers, vendors, …

      • Incorporating our brand new style!

      • Interactive charts

      • Includes overview of all latency CCDF results

    • JSON: Allows for machine post-processing

    • XML JUnit: Useful for integration in automation tools

  • Helpers

    • Ease-of-use for configuration and/or post-processing of the analyzed results

  • Example scripts

Changelog

For all details, please have a look at our our Changelog.

Requirements

Supported platforms

The ByteBlower Test Framework in general supports Python version 3.7 to 3.11.

The framework has been tested for the following operating system platforms and Python versions:

OS platform

Distribution

Python version

source

Windows 10

up to feature release 21H2

Python 3.10

Official Python

Windows 10

up to feature release 21H2

Python 3.9

Official Python

Windows 10

up to feature release 21H2

Python 3.8

Official Python

Windows 10

up to feature release 21H2

Python 3.7

Official Python

Windows 10

up to feature release 21H2

Python 3.9

Windows Apps

Windows 10

up to feature release 21H2

Python 3.8

Windows Apps

Windows 10

up to feature release 21H2

Python 3.7

Windows Apps

macOS

up to Monterey

Python 3.9

Official Python (Intel-only!)

macOS

up to Monterey

Python 3.8

Official Python (Intel-only!)

Linux

Debian 11 (bullseye)

Python 3.9.2

Debian packages

Linux

Debian 10 (buster)

Python 3.7.3

Debian packages

Linux

Ubuntu 20.04 (Focal Fossa)

Python 3.8.2

Ubuntu packages

Linux

Ubuntu 22.04 (Focal Fossa)

Python 3.10.4

Ubuntu packages

Docker

python:3.10-slim-buster

Python 3.10.11

Docker Python

Docker

python:3.9-slim-buster

Python 3.9.16

Docker Python

Docker

python:3.8-slim-buster

Python 3.8.16

Docker Python

Docker

python:3.7-slim-buster

Python 3.7.13

Docker Python

Installation

Prepare runtime environment

We recommend managing the runtime environment in a Python virtual environment. This guarantees proper separation of the system-wide installed Python and pip packages.

Python virtual environment

Make sure to use the right Python version (>= 3.7, <= 3.11), list all Python versions installed in your machine by running:

  1. On Windows systems using PowerShell:

    py --list

If no Python version is in the required range, you can download and install Python 3.7 or above using your system package manager or from https://www.python.org/ftp/python.

Prepare Python virtual environment: Create the virtual environment and install/update pip and build.

  1. On Unix-based systems (Linux, WSL, macOS):

    Note: Mind the leading . which means sourcing ./.venv/bin/activate.

    python3 -m venv --clear .venv
    . ./.venv/bin/activate
    pip install -U pip build
  2. On Windows systems using PowerShell:

    Note: On Microsoft Windows, it may be required to enable the Activate.ps1 script by setting the execution policy for the user. You can do this by issuing the following PowerShell command:

    Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

    See About Execution Policies for more information.

    py -3.8 -m venv --clear .venv
    & ".\.venv\Scripts\activate.ps1"
    python -m pip install -U pip build

Install the ByteBlower Test Framework from PyPI

First make sure that you have activated your virtual environment:

  1. On Unix-based systems (Linux, WSL, macOS):

    . ./.venv/bin/activate

    Note: For macOS: later on, when generating ByteBlower HTML reports, you might see SSL errors like:

    ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1129)
    urllib.error.URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1131)>

    You can fix this by installing or updating the CA certificates for your Python version. In your activated Python virtual environment in a macOS Terminal, type (for example, for Python 3.12):

    open /Applications/Python\ 3.12/Install\ Certificates.command
  2. On Windows systems using PowerShell:

    & ".\.venv\Scripts\activate.ps1"

Now install (or update) the ByteBlower Test Framework:

pip install -U byteblower-test-framework

Documentation

Online usage documentation: ByteBlower Test Framework documentation

The API documentation is also always available in the API:

help(any_api_object)

Some examples:

For classes (and their members):

from byteblower_test_framework.host import Server
from byteblower_test_framework.endpoint import IPv4Port
from byteblower_test_framework.traffic import FrameBlastingFlow

help(Server)
help(Server.start)
help(Server.info)
help(IPv4Port)
help(FrameBlastingFlow)

from byteblower_test_framework.report import ByteBlowerHtmlReport

help(ByteBlowerHtmlReport)

For objects (and their members):

from byteblower_test_framework.host import Server

my_server = Server('byteblower-39.lab.excentis.com.')

help(my_server)
help(my_server.start)

Usage

First make sure that you have activated your virtual environment:

  1. On Unix-based systems (Linux, WSL, macOS):

    . ./.venv/bin/activate
  2. On Windows systems using PowerShell:

    & ".\.venv\Scripts\activate.ps1"

Let’s give it a test run: Import the test framework and show its documentation:

python
import byteblower_test_framework
help(byteblower_test_framework)

This shows you the ByteBlower Test Framework module documentation.

Command-line interface

To get help for command line arguments:

  1. As a command-line script:

    byteblower-test-framework --help
  2. As a python module:

    python -m byteblower_test_framework --help

For a quick start, you can run a simple test using the JSON configuration of one of the example files below:

Save you configuration in your working directory as byteblower_test_framework.json. Please make sure you change the server and ports configuration according to the setup you want to run your test on.

The byteblower_test_framework.json can be used then to run the test in the command line interface using:

byteblower-test-framework

The resulting reports will be saved into the current directory.

To specify a different config file name and report path using:

byteblower-test-framework --config-file path/to/my_test_config.json  --report-path path/to/my_test_reports_directory

You can find more details on how to customize your own configuration file in Configuration file.

Development

pre-commit

Would you like to contribute to this project? You’re very welcome! 😊

Please contact us at ByteBlower Support and we’ll be there to guide you.

Support

If you have any questions or feature request you can contact the ByteBlower support team using:

🌍: Excentis Support Portal

🖂: ByteBlower Support

🕽: +32 (0) 9 269 22 91

ByteBlower A product by Excentis

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

byteblower_test_framework-1.4.1.tar.gz (4.8 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

byteblower_test_framework-1.4.1-py3-none-any.whl (2.6 MB view details)

Uploaded Python 3

File details

Details for the file byteblower_test_framework-1.4.1.tar.gz.

File metadata

File hashes

Hashes for byteblower_test_framework-1.4.1.tar.gz
Algorithm Hash digest
SHA256 1566b025b3edca437d5b6ebf1f26ed3ebc29cdd16e17226911cb07ed8f6fc955
MD5 8cd0b799f0b51764d4c405e5b9213674
BLAKE2b-256 d27e413f2b03c39175c33eb081a405226ad7cc035292f8e2b395a04faaa2cc1a

See more details on using hashes here.

File details

Details for the file byteblower_test_framework-1.4.1-py3-none-any.whl.

File metadata

File hashes

Hashes for byteblower_test_framework-1.4.1-py3-none-any.whl
Algorithm Hash digest
SHA256 895e491d2409b605742de492fc5006933994e6871eb489a4e219fb1805b86861
MD5 a94558fe29a5105d9eff34102ba5a93a
BLAKE2b-256 5ac06f99714acedf511eb9ce9eb6b7f8ff98fd95ca7f809a1cb5b815275045d3

See more details on using hashes here.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page