*************************
ByteBlower Test Framework
*************************
An easy accessible library of basic test flows and reporting engines.
.. footer::
Copyright |copy| |year| - Excentis N.V.
.. |registered| unicode:: U+00AE .. registered sign
.. |copy| unicode:: U+00A9 .. copyright sign
.. |year| date:: %Y
ByteBlower |registered| is a traffic generator/analyzer system
for TCP/IP networks.
This library provides you with the building blocks for:
#. Generating test traffic
#. Collect statistics
#. Analyze traffic statistics
#. Generate reports
Quick start guide
=================
Get started right away? Have a look at our `Installation & Quick start`_ guide.
.. _Installation & Quick start: https://api.byteblower.com/test-framework/latest/byteblower-test-framework/quick_start.html
Release notes
=============
What can this version bring to you?
See our exciting new and existing features below!
.. _Command-line interface: https://api.byteblower.com/test-framework/latest/byteblower-test-framework/cli/index.html
.. _Versioning: https://api.byteblower.com/test-framework/latest/byteblower-test-framework/versioning.html
.. _ByteBlower Endpoint: https://www.excentis.com/products/byteblower-endpoint/
**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.
- `Test Case: TR-398`_
- Guided `TR-398`_ Wi-Fi 802.11n/ac/ax performance validation tests
- `Test Case: RFC 2544 Throughput`_
- Run an `RFC 2544`_ network performance test with ease!
- `Test Case: Low Latency`_
- Run low latency validation tests on your network.
.. _Test Case\: TR-398: https://api.byteblower.com/test-framework/latest/test-cases/tr-398/overview.html
.. _TR-398: https://www.broadband-forum.org/pdfs/tr-398-3-0-0.pdf
.. _Test Case\: RFC 2544 Throughput: https://api.byteblower.com/test-framework/latest/test-cases/rfc-2544/overview.html
.. _Test Case\: Low Latency: https://api.byteblower.com/test-framework/latest/test-cases/low-latency/overview.html
.. _RFC 2544: https://datatracker.ietf.org/doc/html/rfc2544
.. _Low Latency, Low Loss, and Scalable Throughput (L4S): https://datatracker.ietf.org/doc/html/rfc9330
📢 **New since v1.3.0!** 📢
---------------------------
It is with great pleasure that we announce our
new features of the ByteBlower Test Framework!
- Support for `Low Latency, Low Loss, and Scalable Throughput (L4S)`_ on TCP
- Run traffic tests on your L4S-enabled network!
- HTTP Flows: Including **TCP results over time** in the reports
- Transmitted and received number of bytes
- Average throughput over time
- Round Trip Time (``RTT``)
- Number of TCP retransmissions
- ECN Congestion Experienced (``CE``) notification
(*for L4S-enabled TCP flows*)
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 and SLAAC address configuration (*ByteBlower Port only*)
- ByteBlower Endpoint: Automatic resolving of Endpoint host's IPv6 address
for each traffic flow.
- Traffic types
- Stateless: frame blasting (UDP-based)
- Stateful: HTTP (TCP-based)
- Define IP Traffic class: DSCP & ECN
- TCP Prague for `Low Latency, Low Loss, and Scalable Throughput (L4S)`_
- 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
- 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`_
.. _Example scripts: https://api.byteblower.com/test-framework/index.html#examples
Changelog
---------
For all details, please have a look at our Changelog_.
.. _Changelog: https://api.byteblower.com/test-framework/latest/changelog.html
Requirements
============
* byteblowerll_ (`ByteBlower API`_): Our lower layer API for client-server
communication (`API documentation <https://api.byteblower.com/python>`_)
* scapy_: Used for frame generation and parsing
* junit-xml_: Used for Unit test report generation
* pandas_: Used for data collection
* highcharts-excentis_: Used for generating graphs
* jinja2_: User for HTML report templating
.. _ByteBlower API: https://setup.byteblower.com/
.. _byteblowerll: https://pypi.org/project/byteblowerll/
.. _scapy: https://pypi.org/project/scapy/
.. _junit-xml: https://pypi.org/project/junit-xml/
.. _pandas: https://pypi.org/project/pandas/
.. _highcharts-excentis: https://pypi.org/project/highcharts-excentis/
.. _jinja2: https://pypi.org/project/Jinja2/
Supported platforms
-------------------
The ByteBlower Test Framework in general supports Python version 3.7 to 3.11.
.. note::
**NOTE**: *Python >= 3.12 is not yet supported because the ByteBlower API
libraries are not yet available for Python 3.12* (`byteblowerll`_).
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`_ |
+------------------+----------------------------+----------------+------------------------+
.. _Official Python: https://www.python.org
.. _Windows Apps: https://apps.microsoft.com/
.. _Debian packages: https://packages.debian.org/search?suite=all&exact=1&searchon=names&keywords=python3
.. _Ubuntu packages: https://packages.ubuntu.com/search?keywords=python3&searchon=names&exact=1&suite=all§ion=all
.. _Docker Python: https://hub.docker.com/_/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:
#. On Windows systems using PowerShell:
.. code-block:: shell
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``.
#. On Unix-based systems (Linux, WSL, macOS):
**Note**:
*Mind the leading* ``.`` *which means* **sourcing** ``./.venv/bin/activate``.
.. code-block:: shell
python3 -m venv --clear .venv
. ./.venv/bin/activate
pip install -U pip build
#. 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:
.. code-block:: shell
PS C:> Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
See `About Execution Policies`_ for more information.
.. code-block:: shell
py -3.8 -m venv --clear .venv
& ".\.venv\Scripts\activate.ps1"
python -m pip install -U pip build
.. _About Execution Policies: https://go.microsoft.com/fwlink/?LinkID=135170
Install the ByteBlower Test Framework from PyPI
-----------------------------------------------
First make sure that your *activated* your virtual environment:
#. On Unix-based systems (Linux, WSL, macOS):
.. code-block:: shell
. ./.venv/bin/activate
#. On Windows systems using PowerShell:
.. code-block:: shell
& ".\.venv\Scripts\activate.ps1"
Now install (or update) the ByteBlower Test Framework:
.. code-block:: shell
pip install -U byteblower-test-framework
Documentation
=============
Online usage documentation: `ByteBlower Test Framework documentation`_
.. _ByteBlower Test Framework documentation: https://api.byteblower.com/test-framework/latest/
The API documentation is also always available in the API:
.. code-block:: python
help(any_api_object)
Some examples:
For classes (and their members):
.. code-block:: python
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):
.. code-block:: python
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 your *activated* your virtual environment:
#. On Unix-based systems (Linux, WSL, macOS):
.. code-block:: shell
. ./.venv/bin/activate
#. On Windows systems using PowerShell:
.. code-block:: shell
& ".\.venv\Scripts\activate.ps1"
Let's give it a test run: Import the test framework and show its
documentation:
.. code-block:: shell
python
.. code-block:: 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:
#. As a command-line script:
.. code-block:: shell
byteblower-test-framework --help
#. As a python module:
.. code-block:: shell
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:
* `Test scenario for ByteBlower Ports <https://api.byteblower.com/test-framework/json/byteblower-test-framework/port/byteblower_test_framework.json>`_
* `Test scenario for ByteBlower Endpoint <https://api.byteblower.com/test-framework/json/byteblower-test-framework/endpoint/byteblower_test_framework.json>`_
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:
.. code-block:: shell
byteblower-test-framework
The resulting reports will be saved into the current directory.
To specify a different *config file name* and *report path* using:
.. code-block:: shell
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`_.
.. _Configuration file: https://api.byteblower.com/test-framework/latest/byteblower-test-framework/config/index.html
.. note::
**To-do**: *We will provide a quick start guide in the future.*
Development
===========
.. image:: https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit
:target: https://github.com/pre-commit/pre-commit
:alt: 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
=======
.. See http://docutils.sourceforge.net/0.4/docs/ref/rst/directives.html#image
If you have any questions or feature request you can contact the ByteBlower
support team using:
|globe|: `Excentis Support Portal`_
|e-mail|: `ByteBlower Support`_
|telephone|: +32 (0) 9 269 22 91
.. e-mail icon:
.. |e-mail| unicode:: U+1F582
.. globe icon:
.. |globe| unicode:: U+1F30D
.. .. |globe| unicode:: U+1F310
.. telephone icon:
.. |telephone| unicode:: U+1F57D
.. ByteBlower logo
.. ! NOTE: ``:height:`` is not required, but added as workaround
.. * for https://github.com/pypa/readme_renderer/issues/304
.. image:: http://static.excentis.com/byteblower_blue_transparent_background.png
:width: 400
:height: 131
:scale: 60
:align: right
:alt: ByteBlower
:target: byteblower_
.. "A product by Excentis" logo
.. ! NOTE: ``:height:`` is not required, but added as workaround
.. * for https://github.com/pypa/readme_renderer/issues/304
.. image:: http://static.excentis.com/Aproductby.png
:width: 320
:height: 17
:scale: 60
:align: right
:alt: A product by Excentis
:target: excentis_
.. _byteblower: https://byteblower.com
.. _excentis: https://www.excentis.com
.. _Excentis Support Portal: https://support.excentis.com
.. _ByteBlower Support: mailto:support.byteblower@excentis.com
Raw data
{
"_id": null,
"home_page": null,
"name": "byteblower-test-framework",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.7",
"maintainer_email": "Tom Ghyselinck <tom.ghyselinck@excentis.com>",
"keywords": "ByteBlower, Test Framework",
"author": null,
"author_email": "ByteBlower Development Team <support.byteblower@excentis.com>",
"download_url": "https://files.pythonhosted.org/packages/35/9d/43f4eb136a0bf64d58b6cb06ddde3ec4e1f13abbec1197993b10681de517/byteblower_test_framework-1.3.3.tar.gz",
"platform": null,
"description": "*************************\nByteBlower Test Framework\n*************************\n\n An easy accessible library of basic test flows and reporting engines.\n\n.. footer::\n Copyright |copy| |year| - Excentis N.V.\n\n.. |registered| unicode:: U+00AE .. registered sign\n.. |copy| unicode:: U+00A9 .. copyright sign\n.. |year| date:: %Y\n\nByteBlower |registered| is a traffic generator/analyzer system\nfor TCP/IP networks.\n\nThis library provides you with the building blocks for:\n\n#. Generating test traffic\n#. Collect statistics\n#. Analyze traffic statistics\n#. Generate reports\n\nQuick start guide\n=================\n\nGet started right away? Have a look at our `Installation & Quick start`_ guide.\n\n.. _Installation & Quick start: https://api.byteblower.com/test-framework/latest/byteblower-test-framework/quick_start.html\n\nRelease notes\n=============\n\nWhat can this version bring to you?\nSee our exciting new and existing features below!\n\n.. _Command-line interface: https://api.byteblower.com/test-framework/latest/byteblower-test-framework/cli/index.html\n.. _Versioning: https://api.byteblower.com/test-framework/latest/byteblower-test-framework/versioning.html\n.. _ByteBlower Endpoint: https://www.excentis.com/products/byteblower-endpoint/\n\n**Note**: *Have a look at our* Versioning_ *for more information about\nhow releases are handled for the ByteBlower Test Framework*.\n\n\u2728 **Test Cases** \u2728\n--------------------\n\nThe ByteBlower Test Framework serves as the base for many of our customer's\ntest cases.\n\nAt Excentis, we also develop common test cases and love to\nshare them with the community.\n\n- `Test Case: TR-398`_\n\n - Guided `TR-398`_ Wi-Fi 802.11n/ac/ax performance validation tests\n\n- `Test Case: RFC 2544 Throughput`_\n\n - Run an `RFC 2544`_ network performance test with ease!\n\n- `Test Case: Low Latency`_\n\n - Run low latency validation tests on your network.\n\n.. _Test Case\\: TR-398: https://api.byteblower.com/test-framework/latest/test-cases/tr-398/overview.html\n.. _TR-398: https://www.broadband-forum.org/pdfs/tr-398-3-0-0.pdf\n.. _Test Case\\: RFC 2544 Throughput: https://api.byteblower.com/test-framework/latest/test-cases/rfc-2544/overview.html\n.. _Test Case\\: Low Latency: https://api.byteblower.com/test-framework/latest/test-cases/low-latency/overview.html\n.. _RFC 2544: https://datatracker.ietf.org/doc/html/rfc2544\n.. _Low Latency, Low Loss, and Scalable Throughput (L4S): https://datatracker.ietf.org/doc/html/rfc9330\n\n\ud83d\udce2 **New since v1.3.0!** \ud83d\udce2\n---------------------------\n\nIt is with great pleasure that we announce our\nnew features of the ByteBlower Test Framework!\n\n- Support for `Low Latency, Low Loss, and Scalable Throughput (L4S)`_ on TCP\n\n - Run traffic tests on your L4S-enabled network!\n\n- HTTP Flows: Including **TCP results over time** in the reports\n\n - Transmitted and received number of bytes\n - Average throughput over time\n - Round Trip Time (``RTT``)\n - Number of TCP retransmissions\n - ECN Congestion Experienced (``CE``) notification\n (*for L4S-enabled TCP flows*)\n\nFeatures\n--------\n\n- Quick and easy automation of traffic tests using ByteBlower\n- Straightforward building blocks for your own test scripts\n\n - Grouped in self-explaining categories\n - Designed with a small \ud83d\ude09 to the workflow you are used to from the GUI\n\n- `Command-line interface`_\n\n - Run traffic tests with nothing more than a JSON configuration file!\n\n- Supported ByteBlower endpoint types\n\n - ByteBlower Port (on a physical interface of a ByteBlower server)\n - `ByteBlower Endpoint`_ (mobile testing via app on your device)\n\n- Endpoint configuration\n\n - IPv4\n\n - DHCP and manual address configuration (*ByteBlower Port only*)\n - Automatic handling of endpoints located behind a NAT/NAPT gateway!\n\n - IPv6\n\n - DHCPv6 and SLAAC address configuration (*ByteBlower Port only*)\n - ByteBlower Endpoint: Automatic resolving of Endpoint host's IPv6 address\n for each traffic flow.\n\n- Traffic types\n\n - Stateless: frame blasting (UDP-based)\n - Stateful: HTTP (TCP-based)\n - Define IP Traffic class: DSCP & ECN\n\n - TCP Prague for `Low Latency, Low Loss, and Scalable Throughput (L4S)`_\n\n- Application simulations\n\n - Voice over IP (VoIP) using the G.711 codec\n - Traditional gaming (*ByteBlower Endpoint only as destination*)\n - Video streaming (Netflix, YouTube, ...) (*ByteBlower Port only*)\n\n- Standard analysis\n\n - Frame count: transmitted and received over time, frame loss and byte loss\n - Latency: Minimum, maximum, average and jitter over time\n - TCP\n\n - Average goodput on HTTP (layer 5)\n - Transmitted and received Bytes over time\n - TCP average throughput over time\n - Minimum, maximum and average Round Trip Time (``RTT``)\n - TCP Retransmission counts\n - ECN *Congestion Experienced* (``CE``) markings\n (*for L4S-enabled TCP flows*)\n\n - Aggregation of results over multiple flows\n (*frame blasting only*)\n - PASS/FAIL criteria can be provided to match your KPIs\n\n- Application-specific analysis\n\n - Mean Opinion Score (``MOS``): Specific for Voice flows\n - Video buffer analysis: Specific for Video flows (*ByteBlower Port only*)\n\n- Reporting\n\n - Summary *and* realtime results\n - HTML: Neat to share with your chief, customers, vendors, ...\n\n - Incorporating our brand new style!\n - Interactive charts\n - Includes overview of all latency CCDF results\n\n - JSON: Allows for machine post-processing\n - XML JUnit: Useful for integration in automation tools\n\n- Helpers\n\n - Ease-of-use for configuration and/or post-processing\n of the analyzed results\n\n- `Example scripts`_\n\n.. _Example scripts: https://api.byteblower.com/test-framework/index.html#examples\n\nChangelog\n---------\n\nFor all details, please have a look at our Changelog_.\n\n.. _Changelog: https://api.byteblower.com/test-framework/latest/changelog.html\n\nRequirements\n============\n\n* byteblowerll_ (`ByteBlower API`_): Our lower layer API for client-server\n communication (`API documentation <https://api.byteblower.com/python>`_)\n* scapy_: Used for frame generation and parsing\n* junit-xml_: Used for Unit test report generation\n* pandas_: Used for data collection\n* highcharts-excentis_: Used for generating graphs\n* jinja2_: User for HTML report templating\n\n.. _ByteBlower API: https://setup.byteblower.com/\n.. _byteblowerll: https://pypi.org/project/byteblowerll/\n.. _scapy: https://pypi.org/project/scapy/\n.. _junit-xml: https://pypi.org/project/junit-xml/\n.. _pandas: https://pypi.org/project/pandas/\n.. _highcharts-excentis: https://pypi.org/project/highcharts-excentis/\n.. _jinja2: https://pypi.org/project/Jinja2/\n\nSupported platforms\n-------------------\n\nThe ByteBlower Test Framework in general supports Python version 3.7 to 3.11.\n\n.. note::\n **NOTE**: *Python >= 3.12 is not yet supported because the ByteBlower API\n libraries are not yet available for Python 3.12* (`byteblowerll`_).\n\nThe framework has been tested for the following operating system platforms\nand Python versions:\n\n+------------------+----------------------------+----------------+------------------------+\n| OS platform | Distribution | Python version | source |\n+==================+============================+================+========================+\n| Windows 10 | up to feature release 21H2 | Python 3.10 | `Official Python`_ |\n+------------------+----------------------------+----------------+------------------------+\n| Windows 10 | up to feature release 21H2 | Python 3.9 | `Official Python`_ |\n+------------------+----------------------------+----------------+------------------------+\n| Windows 10 | up to feature release 21H2 | Python 3.8 | `Official Python`_ |\n+------------------+----------------------------+----------------+------------------------+\n| Windows 10 | up to feature release 21H2 | Python 3.7 | `Official Python`_ |\n+------------------+----------------------------+----------------+------------------------+\n| Windows 10 | up to feature release 21H2 | Python 3.9 | `Windows Apps`_ |\n+------------------+----------------------------+----------------+------------------------+\n| Windows 10 | up to feature release 21H2 | Python 3.8 | `Windows Apps`_ |\n+------------------+----------------------------+----------------+------------------------+\n| Windows 10 | up to feature release 21H2 | Python 3.7 | `Windows Apps`_ |\n+------------------+----------------------------+----------------+------------------------+\n| macOS | up to Monterey | Python 3.9 | `Official Python`_ |\n| | | | (**Intel-only!**) |\n+------------------+----------------------------+----------------+------------------------+\n| macOS | up to Monterey | Python 3.8 | `Official Python`_ |\n| | | | (**Intel-only!**) |\n+------------------+----------------------------+----------------+------------------------+\n| Linux | Debian 11 (bullseye) | Python 3.9.2 | `Debian packages`_ |\n+------------------+----------------------------+----------------+------------------------+\n| Linux | Debian 10 (buster) | Python 3.7.3 | `Debian packages`_ |\n+------------------+----------------------------+----------------+------------------------+\n| Linux | Ubuntu 20.04 (Focal Fossa) | Python 3.8.2 | `Ubuntu packages`_ |\n+------------------+----------------------------+----------------+------------------------+\n| Linux | Ubuntu 22.04 (Focal Fossa) | Python 3.10.4 | `Ubuntu packages`_ |\n+------------------+----------------------------+----------------+------------------------+\n| Docker | python:3.10-slim-buster | Python 3.10.11 | `Docker Python`_ |\n+------------------+----------------------------+----------------+------------------------+\n| Docker | python:3.9-slim-buster | Python 3.9.16 | `Docker Python`_ |\n+------------------+----------------------------+----------------+------------------------+\n| Docker | python:3.8-slim-buster | Python 3.8.16 | `Docker Python`_ |\n+------------------+----------------------------+----------------+------------------------+\n| Docker | python:3.7-slim-buster | Python 3.7.13 | `Docker Python`_ |\n+------------------+----------------------------+----------------+------------------------+\n\n.. _Official Python: https://www.python.org\n.. _Windows Apps: https://apps.microsoft.com/\n.. _Debian packages: https://packages.debian.org/search?suite=all&exact=1&searchon=names&keywords=python3\n.. _Ubuntu packages: https://packages.ubuntu.com/search?keywords=python3&searchon=names&exact=1&suite=all§ion=all\n.. _Docker Python: https://hub.docker.com/_/python\n\nInstallation\n============\n\nPrepare runtime environment\n---------------------------\n\nWe recommend managing the runtime environment in a Python virtual\nenvironment. This guarantees proper separation of the system-wide\ninstalled Python and pip packages.\n\nPython virtual environment\n^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nMake sure to use the right Python version (>= 3.7, <= 3.11),\nlist all Python versions installed in your machine by running:\n\n#. On Windows systems using PowerShell:\n\n .. code-block:: shell\n\n py --list\n\nIf no Python version is in the required range, you can download and install\nPython 3.7 or above using your system package manager\nor from https://www.python.org/ftp/python.\n\nPrepare Python virtual environment: Create the virtual environment\nand install/update ``pip`` and ``build``.\n\n#. On Unix-based systems (Linux, WSL, macOS):\n\n **Note**:\n *Mind the leading* ``.`` *which means* **sourcing** ``./.venv/bin/activate``.\n\n .. code-block:: shell\n\n python3 -m venv --clear .venv\n . ./.venv/bin/activate\n pip install -U pip build\n\n#. On Windows systems using PowerShell:\n\n **Note**: On Microsoft Windows, it may be required to enable the\n Activate.ps1 script by setting the execution policy for the user.\n You can do this by issuing the following PowerShell command:\n\n .. code-block:: shell\n\n PS C:> Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser\n\n See `About Execution Policies`_ for more information.\n\n .. code-block:: shell\n\n py -3.8 -m venv --clear .venv\n & \".\\.venv\\Scripts\\activate.ps1\"\n python -m pip install -U pip build\n\n.. _About Execution Policies: https://go.microsoft.com/fwlink/?LinkID=135170\n\nInstall the ByteBlower Test Framework from PyPI\n-----------------------------------------------\n\nFirst make sure that your *activated* your virtual environment:\n\n#. On Unix-based systems (Linux, WSL, macOS):\n\n .. code-block:: shell\n\n . ./.venv/bin/activate\n\n#. On Windows systems using PowerShell:\n\n .. code-block:: shell\n\n & \".\\.venv\\Scripts\\activate.ps1\"\n\nNow install (or update) the ByteBlower Test Framework:\n\n.. code-block:: shell\n\n pip install -U byteblower-test-framework\n\nDocumentation\n=============\n\nOnline usage documentation: `ByteBlower Test Framework documentation`_\n\n.. _ByteBlower Test Framework documentation: https://api.byteblower.com/test-framework/latest/\n\nThe API documentation is also always available in the API:\n\n.. code-block:: python\n\n help(any_api_object)\n\nSome examples:\n\nFor classes (and their members):\n\n.. code-block:: python\n\n from byteblower_test_framework.host import Server\n from byteblower_test_framework.endpoint import IPv4Port\n from byteblower_test_framework.traffic import FrameBlastingFlow\n\n help(Server)\n help(Server.start)\n help(Server.info)\n help(IPv4Port)\n help(FrameBlastingFlow)\n\n from byteblower_test_framework.report import ByteBlowerHtmlReport\n\n help(ByteBlowerHtmlReport)\n\nFor objects (and their members):\n\n.. code-block:: python\n\n from byteblower_test_framework.host import Server\n\n my_server = Server('byteblower-39.lab.excentis.com.')\n\n help(my_server)\n help(my_server.start)\n\nUsage\n=====\n\nFirst make sure that your *activated* your virtual environment:\n\n#. On Unix-based systems (Linux, WSL, macOS):\n\n .. code-block:: shell\n\n . ./.venv/bin/activate\n\n#. On Windows systems using PowerShell:\n\n .. code-block:: shell\n\n & \".\\.venv\\Scripts\\activate.ps1\"\n\nLet's give it a test run: Import the test framework and show its\ndocumentation:\n\n.. code-block:: shell\n\n python\n\n.. code-block:: python\n\n import byteblower_test_framework\n help(byteblower_test_framework)\n\nThis shows you the ByteBlower Test Framework module documentation.\n\nCommand-line interface\n----------------------\n\nTo get help for command line arguments:\n\n#. As a command-line script:\n\n .. code-block:: shell\n\n byteblower-test-framework --help\n\n#. As a python module:\n\n .. code-block:: shell\n\n python -m byteblower_test_framework --help\n\n\nFor a quick start, you can run a simple test using the JSON configuration of\none of the example files below:\n\n* `Test scenario for ByteBlower Ports <https://api.byteblower.com/test-framework/json/byteblower-test-framework/port/byteblower_test_framework.json>`_\n* `Test scenario for ByteBlower Endpoint <https://api.byteblower.com/test-framework/json/byteblower-test-framework/endpoint/byteblower_test_framework.json>`_\n\nSave you configuration in your working directory as\n``byteblower_test_framework.json``. Please make sure you change the server and\nports configuration according to the setup you want to run your test on.\n\nThe ``byteblower_test_framework.json`` can be used then to run the test in the\ncommand line interface using:\n\n.. code-block:: shell\n\n byteblower-test-framework\n\nThe resulting reports will be saved into the current directory.\n\nTo specify a different *config file name* and *report path* using:\n\n.. code-block:: shell\n\n byteblower-test-framework --config-file path/to/my_test_config.json --report-path path/to/my_test_reports_directory\n\nYou can find more details on how to customize your own configuration file\nin `Configuration file`_.\n\n.. _Configuration file: https://api.byteblower.com/test-framework/latest/byteblower-test-framework/config/index.html\n\n.. note::\n **To-do**: *We will provide a quick start guide in the future.*\n\nDevelopment\n===========\n\n.. image:: https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit\n :target: https://github.com/pre-commit/pre-commit\n :alt: pre-commit\n\nWould you like to contribute to this project? You're very welcome! \ud83d\ude0a\n\nPlease contact us at `ByteBlower Support`_ and we'll be there to guide you.\n\nSupport\n=======\n\n.. See http://docutils.sourceforge.net/0.4/docs/ref/rst/directives.html#image\n\nIf you have any questions or feature request you can contact the ByteBlower\nsupport team using:\n\n|globe|: `Excentis Support Portal`_\n\n|e-mail|: `ByteBlower Support`_\n\n|telephone|: +32 (0) 9 269 22 91\n\n.. e-mail icon:\n.. |e-mail| unicode:: U+1F582\n\n.. globe icon:\n.. |globe| unicode:: U+1F30D\n.. .. |globe| unicode:: U+1F310\n\n.. telephone icon:\n.. |telephone| unicode:: U+1F57D\n\n.. ByteBlower logo\n.. ! NOTE: ``:height:`` is not required, but added as workaround\n.. * for https://github.com/pypa/readme_renderer/issues/304\n.. image:: http://static.excentis.com/byteblower_blue_transparent_background.png\n :width: 400\n :height: 131\n :scale: 60\n :align: right\n :alt: ByteBlower\n :target: byteblower_\n\n.. \"A product by Excentis\" logo\n.. ! NOTE: ``:height:`` is not required, but added as workaround\n.. * for https://github.com/pypa/readme_renderer/issues/304\n.. image:: http://static.excentis.com/Aproductby.png\n :width: 320\n :height: 17\n :scale: 60\n :align: right\n :alt: A product by Excentis\n :target: excentis_\n\n.. _byteblower: https://byteblower.com\n.. _excentis: https://www.excentis.com\n.. _Excentis Support Portal: https://support.excentis.com\n.. _ByteBlower Support: mailto:support.byteblower@excentis.com\n\n",
"bugtrack_url": null,
"license": null,
"summary": "Test Framework for the ByteBlower Traffic Generator.",
"version": "1.3.3",
"project_urls": {
"Documentation": "https://api.byteblower.com/test-framework/index.html#documentation",
"Examples": "https://api.byteblower.com/test-framework/index.html#examples",
"Homepage": "https://www.byteblower.com",
"Support Portal": "https://support.excentis.com"
},
"split_keywords": [
"byteblower",
" test framework"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "1ebfb63b9dd5d576f94ae9f13663cd11c25e2dd7cc508926d72c7c696bfaa131",
"md5": "3753f6e2144c491e9e73e76d0812df56",
"sha256": "c66351a57e19a6d557d5eed888ecf27e09b0b5261a95451749c965ee799e3c86"
},
"downloads": -1,
"filename": "byteblower_test_framework-1.3.3-py3-none-any.whl",
"has_sig": false,
"md5_digest": "3753f6e2144c491e9e73e76d0812df56",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.7",
"size": 2558925,
"upload_time": "2024-07-16T16:50:18",
"upload_time_iso_8601": "2024-07-16T16:50:18.306285Z",
"url": "https://files.pythonhosted.org/packages/1e/bf/b63b9dd5d576f94ae9f13663cd11c25e2dd7cc508926d72c7c696bfaa131/byteblower_test_framework-1.3.3-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "359d43f4eb136a0bf64d58b6cb06ddde3ec4e1f13abbec1197993b10681de517",
"md5": "4da1535a8ed1f7f0dc2e5912401626b0",
"sha256": "a9e172d1a6e8aab758332b542a737622d43d8dcb11c94b593b71946877959a28"
},
"downloads": -1,
"filename": "byteblower_test_framework-1.3.3.tar.gz",
"has_sig": false,
"md5_digest": "4da1535a8ed1f7f0dc2e5912401626b0",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.7",
"size": 4831761,
"upload_time": "2024-07-16T16:50:22",
"upload_time_iso_8601": "2024-07-16T16:50:22.174402Z",
"url": "https://files.pythonhosted.org/packages/35/9d/43f4eb136a0bf64d58b6cb06ddde3ec4e1f13abbec1197993b10681de517/byteblower_test_framework-1.3.3.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-07-16 16:50:22",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "byteblower-test-framework"
}