wifi_throughput¶
Source code: wifi_throughput.py
WiFi throughput test.
Description¶
Accepts a list of wireless services, checks for their signal strength and quality, connects to them, and tests data throughput rate using iperf3.
- One notable difference about this test is how it processes arguments:
Each service configuration must provide two required arguments “ssid” and “password”.
If a service configuration does not provide an argument, it defaults to the “test-level” argument.
If it was not provided as a “test-level” argument, it takes the default value passed to the Arg() constructor.
Test Procedure¶
Accepts a list of wireless services.
- For each service:
Checks signal strength.
Checks quality devices.
Connects to devices.
Tests data throughput rate using iperf3.
Dependency¶
ifconfig utility
iperf3 utility
Examples¶
Here’s an example of input arguments. Users need to adjust the network topology and the IP. To pass go/pe-sw-gates, the device has to pass suite:wifi_perf which includes some iperf3 tests.:
{
"pytest_name": "wifi_throughput",
"label": "Wifi Throughput",
"exclusive_resources": [
"NETWORK"
],
"related_components": [
"test_tags.TestCategory.WIFI"
],
"args": {
"event_log_name": "wifi_throughput_in_chamber",
"services": [
{
"ssid": "GoogleGuest-Legacy",
"password": "",
"min_rx_throughput": 80,
"min_strength": -80,
"iperf_host": "127.0.0.1",
"iperf_port": 5201
},
{
"ssid": "GoogleGuest-IPv4",
"password": "",
"min_rx_throughput": 80,
"min_strength": -80,
"iperf_host": "127.0.0.1",
"iperf_port": 5201
}
],
"enable_iperf_server": true
}
}
Test Arguments¶
Name |
Type |
Description |
---|---|---|
event_log_name |
str |
Name of the event_log. We might want to re-run the conductive test at different points in the factory, so this can be used to separate them. e.g. “wifi_throughput_in_chamber” |
pre_command |
str, None |
(optional; default: |
post_command |
str, None |
(optional; default: |
interface |
str, None |
(optional; default: |
arduino_high_pins |
list, None |
(optional; default: |
blink_leds |
bool |
(optional; default: |
bind_wifi |
bool |
(optional; default: |
disable_eth |
bool |
(optional; default: |
use_ui_retry |
bool |
(optional; default: |
services |
list, dict |
(optional; default: |
iperf_host |
str, None |
(optional; default: |
iperf_port |
int, None |
(optional; default: |
enable_iperf_server |
bool |
(optional; default: |
min_strength |
int, None |
(optional; default: |
min_quality |
int, None |
(optional; default: |
transmit_time |
int |
(optional; default: |
transmit_interval |
int, float |
(optional; default: |
min_tx_throughput |
int, None |
(optional; default: |
min_rx_throughput |
int, None |
(optional; default: |