Automated check using Aussie Broadband's Speed Test utility.
The primary purpose of this very simple script is to run and record speed test results on a schedule using any old spare computer or Raspberry Pi.
A remote Selenium Firefox webdriver is used to run the speed test and collect results.
Results are collected into an InfluxDB instance. Data collected includes:
- Download speed in
kbps
- Upload speed in
kbps
- Ping time in
ms
The remote webdriver and InfluxDB are provided as Docker Compose services.
docker compose up -d
The InfluxDB UI can be accessed at http://localhost:8086 using credentials
- Username:
speedtest
- Password:
speedtest
Note: Credentials and other configuration is done via environment variables in docker-compose.yml.
Name | Description | Default value |
---|---|---|
BROWSER_URL |
Location of the remote Firefox webdriver | http://localhost:4444 |
DB_URL |
Location of the InfluxDB | http://localhost:8086 |
DB_AUTH_TOKEN |
InfluxDB auth token | speedtest-admin-token |
DB_ORG |
InfluxDB organisation | speedtest |
DB_BUCKET |
InfluxDB bucket for speedtest results | speedtest |
TIMEOUT |
Max wait time (seconds) for results to appear | 120 |
Install dependencies...
pip install -r requirements.txt
and run...
python speed-test.py
Alternately, run the application via Docker Compose
docker compose run app