Skip to content

Test connenction bandwidth as a singular test or an interval-based time series.

License

Notifications You must be signed in to change notification settings

ngimb64/Bandwidth-SpeedTester

Repository files navigation

Bandwidth-SpeedTester

☑️ Bandit verified  |  ☑️ Synk verified  |  ☑️ Pylint verified 9.82/10

alt text alt text alt text

Purpose

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.

License

The program is licensed under GNU Public License v3.0

Contributions or Issues

CONTRIBUTING

Prereqs

This program runs on Windows 10 and Debian-based Linux, written in Python 3.9 and updated to version 3.10.6

Installation

  • 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 or activate.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.

How to use

  • 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

Function Layout

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.

Exit Codes

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

About

Test connenction bandwidth as a singular test or an interval-based time series.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages