Skip to main content

ByteBlower Test Case: RFC 2544 Throughput

Introduction

This package contains an implementation of the RFC 2544 Throughput Test using the ByteBlower Test Framework.

A throughput test aims to measure, under given circumstances, the highest throughput the DUT can handle correctly without exceeding a given threshold of frame loss (theoretically, this threshold is 0).

This ByteBlower RFC 2544 throughput test case allows you to:

  1. Run throughput tests based on RFC 2544

  2. Collect & Analyse statistics

  3. Generate HTML & JSON reports

For more detailed documentation, please have a look at Test Case: RFC 2544 Throughput in the ByteBlower API documentation.

Release notes

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

📢 New since v1.1.0! 📢

It is with great pleasure that we announce our new features and bug fixes of this test case!

  • Extended IPv6 support

    • Running traffic tests with IPv6 ports behind a firewall

    • Manual IPv6 address configuration

  • Documentation

    • Added notes regarding proper SSL setup for Python on macOS.

    • Provided details and examples for MAC address configuration in the documentation and the JSON schema.

  • Fixed hitting Highcharts fair use policy rate limit when running many concurrent tests from different scripts.

  • High-level integration interface: make run function re-usable in a single test script. Release the server objects so that conflicts in new test scenarios are minimized.

Installation

Requirements

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

The ByteBlower Test Framework currently supports Python versions 3.7 up to 3.11.

Important: Working directory

All the following sections expect that you first moved to your working directory where you want to run this project. You may also want to create your configuration files under a sub-directory of your choice.

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

    cd '/path/to/working/directory'
  2. On Windows systems using PowerShell:

    cd 'c:\path\to\working\directory'

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.

    Make sure to specify the python version you’re using. For example, for Python 3.8:

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

To install the ByteBlower RFC 2544 throughput test case and its dependencies, 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

Then, run:

pip install -U byteblower-test-cases-rfc-2544

Quick start

Command-line interface

After providing the appropriate test setup and frame configurations, the test script can be run either as python module or as a command-line script.

For example (to get help for the command-line arguments):

  1. As a python module:

    # To get help for the command-line arguments:
    python -m byteblower.test_cases.rfc_2544 --help
  2. As a command-line script:

    # To get help for the command-line arguments:
    byteblower-test-cases-rfc-2544-throughput --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 rfc_2544.json. Make sure you change the "server" and "ports" configuration according to the setup you want to run your test on.

More detailed documentation is available in the Configuration file section of the documentation.

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

Note: The reports will be stored under a subdirectory reports/.

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

    # Optional: create rfc_2544.json, then copy the configuration to it
    touch rfc_2544.json
    # Create reports folder to store HTML/JSON files
    mkdir reports
    # Run test
    byteblower-test-cases-rfc-2544-throughput --report-path reports
  2. On Windows systems using PowerShell:

    # Optional: create rfc_2544.json, then copy the configuration to it
    New-Item rfc_2544.json
    # Create reports folder to store HTML/JSON files
    md reports
    # Run test
    byteblower-test-cases-rfc-2544-throughput --report-path reports

Integrated

from byteblower.test_cases.rfc_2544 import run

# Defining test configuration, report path and report file name prefix:
test_config = {} # Here you should provide your test setup + frame(s') configuration(s)
report_path = 'my-output-folder' # Optional: provide the path to the output folder, defaults to the current working directory
report_prefix = 'my-dut-feature-test' # Optional: provide prefix of the output files, defaults to 'report'

# Run the RFC 2544 throughput test:
run(test_config, report_path=report_path, report_prefix=report_prefix)

Metadata

Release files for byteblower-test-cases-rfc-2544 1.1.0

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-cases-rfc-2544 1.1.0
File Size Uploaded Provenance Actions
byteblower_test_cases_rfc_2544-1.1.0.tar.gz 3.2 MB Without provenance Details for byteblower_test_cases_rfc_2544-1.1.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for byteblower-test-cases-rfc-2544 1.1.0
File Interpreter ABI Platform Actions
byteblower_test_cases_rfc_2544-1.1.0-py3-none-any.whl Python 3 none any Details for byteblower_test_cases_rfc_2544-1.1.0-py3-none-any.whl

Total release size: 5.6 MB

Release files / byteblower_test_cases_rfc_2544-1.1.0.tar.gz

Download URL byteblower_test_cases_rfc_2544-1.1.0.tar.gz
Size 3.2 MB
Tags Source
SHA-256 checksum
How to use checksums
a3b08e2748916d8e40ad6323902bcd01ac76db716c1fd39025ff1acd27cab54a
BLAKE2b-256 checksum
How to use checksums
e075d1721f0f90a03ab7eca935087259cc000d498ddcfc28400df73161eb6307
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_cases_rfc_2544-1.1.0-py3-none-any.whl

Download URL byteblower_test_cases_rfc_2544-1.1.0-py3-none-any.whl
Size 2.4 MB
Tags Python 3
SHA-256 checksum
How to use checksums
e2a9ec5ab1b9c454e47442c74a15185adb03bdaa032e7b5ddc053d8b3daf8e31
BLAKE2b-256 checksum
How to use checksums
7a45b23121075a9d7a5a26b94aadc2ddc3f92a84987cf784e1c03b9557595a57
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-cases-rfc-2544 1.1.0

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.

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