Overview
Introduction
The ByteBlower Test Platform 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!
Building blocks
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:
FrameBlastingFlowStateful TCP:
HTTPFlow
Next to standard traffic tests, the framework also provides flows to form the base of application simulation:
Voice calls:
VoiceFlowVideo 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:
FrameLossAnalyserAnalyse latency and frame count over time:
LatencyFrameLossAnalyserAnalyse latency CDF and total frame count:
LatencyCDFFrameLossAnalyserCalculate the MOS score of a voice flow:
VoiceAnalyserAnalyse HTTP and TCP statistics over time:
HttpAnalyserAnalyse 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:
ByteBlowerHtmlReportJSON reports:
ByteBlowerJsonReportUnit XML report:
ByteBlowerUnitTestReport
Command-line interface
New 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.
Detailed information is available in Command-line interface.