Test Framework for the ByteBlower Traffic Generator.
Project description
An easy accessible library of basic test flows and reporting engines.
ByteBlower ® is a traffic generator/analyser system for TCP/IP networks.
This library provides you with the building blocks for:
Generating test traffic
Collect statistics
Analyse traffic statistics
Generate reports
Release notes
It is with great pleasure that we announce our first official release of the ByteBlower Test Framework!
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
- Supported ByteBlower endpoint types
ByteBlower Port (on a physical interface of a ByteBlower server)
- Endpoint configuration
- IPv4: DHCP and manual address configuration
Automatic handling of endpoints located behind a NA(P)T gateway!
IPv6: DHCPv6 and SLAAC address configuration
- Traffic types
Stateless: frame blasting (UDP-based)
Stateful: HTTP (TCP-based)
- Application simulations
Voice over IP (VoIP) using the G.711 codec
Video streaming (Netflix, YouTube, …)
- Standard analysis
Frame count: transmitted and received over time, frame loss and byte loss
Latency: Minimum, maximum, average and jitter over time
Aggregation of results over multiple flows (frame blasting only in this release)
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
- 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
Changelog
For all details, please have a look at our Changelog.
Requirements
byteblowerll (ByteBlower API): Our lower layer API for client-server communication (API documentation)
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
Supported platforms
The ByteBlower Test Framework in general supports Python version 3.7 to 3.10.
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 |
|
Windows 10 |
up to feature release 21H2 |
Python 3.9 |
|
Windows 10 |
up to feature release 21H2 |
Python 3.8 |
|
Windows 10 |
up to feature release 21H2 |
Python 3.7 |
|
Windows 10 |
up to feature release 21H2 |
Python 3.9 |
|
Windows 10 |
up to feature release 21H2 |
Python 3.8 |
|
Windows 10 |
up to feature release 21H2 |
Python 3.7 |
|
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 |
|
Linux |
Debian 10 (buster) |
Python 3.7.3 |
|
Linux |
Ubuntu 20.04 (Focal Fossa) |
Python 3.8.2 |
|
Linux |
Ubuntu 22.04 (Focal Fossa) |
Python 3.10.4 |
|
Docker |
python:3.10-slim-buster |
Python 3.10.11 |
|
Docker |
python:3.9-slim-buster |
Python 3.9.16 |
|
Docker |
python:3.8-slim-buster |
Python 3.8.16 |
|
Docker |
python:3.7-slim-buster |
Python 3.7.13 |
Installation
Prepare runtime environment
We encourage to manage the runtime environment in a Python virtual environment. This guarantees proper separation of the system-wide installed Python and pip packages.
Python virtual environment
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 ./env/bin/activate.
python3 -m venv --clear env . ./env/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:
PS C:> Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
See About Execution Policies for more information.
python3.8.exe -m venv --clear env & ".\env\Scripts\activate.ps1" python3.8.exe -m pip install -U pip build
Install the ByteBlower Test Framework from PyPI
First make sure that your activated your virtual environment:
On Unix-based systems (Linux, WSL, macOS):
. ./env/bin/activate
On Windows systems using PowerShell:
& ".\env\Scripts\activate.ps1"
Now install (or update) the ByteBlower Test Framework:
python3 -m 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 your activated your virtual environment:
On Unix-based systems (Linux, WSL, macOS):
. ./env/bin/activate
On Windows systems using PowerShell:
& ".\env\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.
Development
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:
🕽: +32 (0) 9 269 22 91
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for byteblower_test_framework-1.0.0.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | c0bc4df05d0c0382c7c3d9b4356fdc92902048b70870835aa04dd64773f04252 |
|
MD5 | d99059e6a78efb356c83034bd23f723c |
|
BLAKE2b-256 | 60b3586d5f5e33b883c450f4e168e8fe329ffb8bb1df70a259bc7c7118fe4f67 |
Hashes for byteblower_test_framework-1.0.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b8f2f7271b54d108566b5991e186940be2f5ab054f71a6ed16c1cd4d983c6a4c |
|
MD5 | 43fb15c5e88493d5eeed3daad7ef6e01 |
|
BLAKE2b-256 | e488ce032df3e36fa0f794b613b69135ef7db02a4bac7d49c76998bf39ebf815 |