Overview
Command-line interface
Added in version 1.1.0.
We provide a user-friendly interface to the building blocks: Define and run a traffic test using a simple JSON configuration file.
Have a look at our Installation & Quick start to run your first test in no time!
Or jump to the detailed information in Command-line interface to see more detailed information about the command-line options.
Example Test Scenarios
You can find examples of test scenarios on Examples.
Building blocks
The ByteBlower Test Framework provides high-level building blocks for different traffic test scenarios.
There are three major categories of building blocks:
Traffic generation
Traffic analysis
Reporting
Next to these three, the framework also provides interfaces for ByteBlower host management (ByteBlower Server and Meeting Point), endpoint management (ByteBlower Ports, ByteBlower Endpoints, …) and more!
Test execution interface
The entrypoint of the framework: A test Scenario, familiar from the ByteBlower GUI.
The entrypoint interfaces are defined in byteblower_test_framework.run module.
Host management
Connect to the ByteBlower Server or ByteBlower Meeting Point.
These interfaces are more in general called host of a ByteBlower traffic endpoint.
The traffic generator/analyser host interfaces are defined in byteblower_test_framework.host module.
Endpoint management
Create and manage ByteBlower Ports and ByteBlower endpoints (more in general called traffic endpoints).
The traffic endpoint interfaces are defined in byteblower_test_framework.endpoint module.
Traffic generation
Define traffic flows between one or more source and destination ports (traffic endpoints).
Each flow defines a specific type of network traffic with given addresses, ports and metrics.
The generated traffic can be analysed by one or more analysers.
The traffic generation interfaces are defined in byteblower_test_framework.traffic module.
We have basic flow definitions for:
UDP:
FrameBlastingFlow
Stateful TCP:
HTTPFlow
Next to standard traffic tests, the framework also provides flows to form the base of application simulation:
Voice calls:
VoiceFlow
Video streaming:
VideoFlow
(traditional) gaming:
GamingFlow
Traffic analysis
Collect and analyse the traffic generated and received by the flows.
An analyser has specific pass/fail criteria which can be fine-tuned for each test. It is attached to a flow to analyse the traffic generated and received by that specific flow.
Note
Each analyser has its own right to exist. Most analysers can only be applied to a specific type of flow.
The traffic analysis interfaces are defined in byteblower_test_framework.analysis module.
Analyse frame count over time:
FrameLossAnalyser
Analyse latency and frame count over time:
LatencyFrameLossAnalyser
Analyse latency CDF and total frame count:
LatencyCDFFrameLossAnalyser
Calculate the MOS score of a voice flow:
VoiceAnalyser
Analyse HTTP and TCP statistics over time:
HttpAnalyser
Analyse HTTP and TCP statistics over time, including L4S related analysis (IP ECN markings):
L4SHttpAnalyser
Note
Requires an
HTTPFlow
with TCP Prague enabled.Analyse a video buffer over time:
BufferAnalyser
Reporting
Generate one or more reports to visualize or post-process the analysis.
The HTML reports include interactive charts. The JSON reports are very useful for automated post-processing. The Unit XML report finally can be used to integrate in your favorite test automation platform (for example Jenkins, GitLab, …) and issue tracking system (for example JIRA, …).
The reporting interfaces are defined in byteblower_test_framework.report module.
HTML reports:
ByteBlowerHtmlReport
JSON reports:
ByteBlowerJsonReport
Unit XML report:
ByteBlowerUnitTestReport