Skip to main content

Perform throughput test based on RFC 2544 using ByteBlower.

Project description

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.

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:

    PS C:> 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
  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)

Project details


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_cases_rfc_2544-1.0.2.tar.gz (3.2 MB view details)

Uploaded Source

Built Distribution

File details

Details for the file byteblower_test_cases_rfc_2544-1.0.2.tar.gz.

File metadata

File hashes

Hashes for byteblower_test_cases_rfc_2544-1.0.2.tar.gz
Algorithm Hash digest
SHA256 e6d0f8b1850331e2fe4fde1f83505b307ff561c141479be768320900768de2be
MD5 c3707061eea7e968e3862e4e332e45b0
BLAKE2b-256 ed23d36a62c33698ca836c5603e88573e775f6663e7e4475d8ace2d214c62fc3

See more details on using hashes here.

File details

Details for the file byteblower_test_cases_rfc_2544-1.0.2-py3-none-any.whl.

File metadata

File hashes

Hashes for byteblower_test_cases_rfc_2544-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 0c7b7f2613d4a7abca33b82f74e99edb527e92156e8087f314b777b33a0479ab
MD5 f350c570ca1014675883bd9a8176d5c6
BLAKE2b-256 e02c91a7ec66953141089167af361db4a0eb1bfead63453be4f7ca78a0be7d4a

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page