Test connection bandwidth as a singular test or an interval-based time series through the Speed Test API.
When multiple tests are selected, each test interval is saved to the test_data.csv file.
Upon completion of all tests, the csv data is loaded and used to create a graph time series report.
The program is licensed under GNU Public License v3.0
This program runs on Windows 10 and Debian-based Linux, written in Python 3.9 and updated to version 3.10.6
- Run the setup.py script to build a virtual environment and install all external packages in the created venv.
Examples:
- Windows:python setup.py venv
- Linux:python3 setup.py venv
- Once virtual env is built traverse to the (Scripts-Windows or bin-Linux) directory in the environment folder just created.
- For Windows, in the venv\Scripts directory, execute
activate
oractivate.bat
script to activate the virtual environment. - For Linux, in the venv/bin directory, execute
source activate
to activate the virtual environment. - If for some reason issues are experienced with the setup script, the alternative is to manually create an environment, activate it, then run pip install -r packages.txt in project root.
- To exit from the virtual environment when finished, execute
deactivate
.
- Open up Command Prompt (CMD) or terminal and activate venv after running setup.py script
- Enter the directory containing the program and execute in shell
graph_test_data - Loads the test data from csv, then graphs the test data as time series.
error_query - Looks up the passed in error, prints, and logs it.
print_result_dict - Displays the speed test results from passed in dictionary.
interval_sleep_counter - Displays sleep counter based on user specified intervals.
run_test - Executes speed test, prints the results, and saves them to report file based on execution time.
print_err - Displays error message via standard output.
user_input - Prompts user for the number of test intervals in an hour and how many hours to test.
main - Prompts user, calculates intervals, executes bandwidth tests in a singular or time series fashion.
0 - Operation successful
1 - Unexpected exception occurred
2 - Attempted file operation on file that does not exist
3 - Attempted file operation on file that does not have proper permissions
4 - IO error occurred during attempted file operation
5 - Unexpected file operation occurred