Skip to main content

ByteBlower Test Framework

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

Metadata

Release files for byteblower-test-framework 1.4.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for byteblower-test-framework 1.4.2
File Size Uploaded Provenance
byteblower_test_framework-1.4.2.tar.gz 4.8 MB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for byteblower-test-framework 1.4.2
File Interpreter ABI Platform
byteblower_test_framework-1.4.2-py3-none-any.whl Python 3 none any Details

Total release size: 7.4 MB

Release files / byteblower_test_framework-1.4.2.tar.gz

Download URL byteblower_test_framework-1.4.2.tar.gz
Size 4.8 MB
Tags Source
SHA-256 checksum
How to use checksums
73079268ed6a0213a189347abc4c6f0f0662c22e2eb611a7561cbb680a79abff
BLAKE2b-256 checksum
How to use checksums
f69f4caf179c5047dd48e44ef2fdcead27603046e643fa31e4cd1b0482ed029d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.7.17

Release files / byteblower_test_framework-1.4.2-py3-none-any.whl

Download URL byteblower_test_framework-1.4.2-py3-none-any.whl
Size 2.6 MB
Tags Python 3
SHA-256 checksum
How to use checksums
f3c3264baa5a75824960c3806332687fd1bea390cd6f5f0e3b349e04efd23d34
BLAKE2b-256 checksum
How to use checksums
83e94e6ef73d093c6c2337aa961a12699c8dac78cd7e0ddef06d7698738e7380
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.7.17

Security for byteblower-test-framework 1.4.2

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

1.4.2 This release

2 release files No provenance

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