Speed Test CLI
A terminal-based application to test your internet speed, view historical results, and export them to a CSV file. This tool provides a graphical and tabular representation of download speed, upload speed, and ping, and allows users to select specific servers for testing.
Features
- Test your internet speed (download, upload, and ping).
- View a graphical and tabular summary of the results.
- Select specific servers for more accurate testing.
- Save results in JSON format for future reference.
- View historical data of past speed tests.
- Export historical data to a CSV file.
- Run multiple tests and calculate average results.
Installation
-
Clone the repository:
git clone https://github.com/s3bu7i/Speed-Test-CLI.git cd Speed-Test-CLI
-
Install the required dependencies:
pip install -r requirements.txt
-
Run the application:
python main.py
Usage
Main Menu Options
- Run Speed Test: Perform a single speed test and view results.
- Run Multiple Tests: Perform multiple speed tests and calculate average results.
- View Historical Data: View saved results from previous tests.
- Export Historical Data to CSV: Save historical data in a CSV file for analysis.
- Exit: Close the application.
Example Output
Speed Test Results
+-----------------+--------------------+
| Metric | Value |
+-----------------+--------------------+
| Ping | 15 ms |
| Download Speed | 95 Mbps |
| Upload Speed | 12 Mbps |
+-----------------+--------------------+
Graphical Representation:
Download Speed: ██████████ 95 Mbps
Upload Speed: ████ 12 Mbps
Ping: ███ 15 ms
Historical Data
+---------------------+------------------+------------------+------+
| Date | Download Speed | Upload Speed | Ping |
+---------------------+------------------+------------------+------+
| 2024-01-01 12:34:56 | 95 Mbps | 12 Mbps | 15 ms|
| 2024-01-02 14:22:10 | 80 Mbps | 10 Mbps | 20 ms|
+---------------------+------------------+------------------+------+
Exported CSV Format
date,download,upload,ping
2024-01-01 12:34:56,95,12,15
2024-01-02 14:22:10,80,10,20
Dependencies
To install these dependencies, run:
pip install speedtest-cli rich
File Structure
Speed-Test-CLI/
├── speed_test_tool/
│ ├── __init__.py
│ ├── main.py # Main program file
│ ├── utils.py # Utility functions
├── requirements.txt # Required dependencies
├── README.md # Documentation
└── LICENSE # License file
Saving and Exporting Results
- JSON: Results are automatically saved in
speedtest_results.json. - CSV: Export results to
speedtest_results.csvfrom the main menu.
Troubleshooting
- Ensure Python 3.7 or later is installed.
- Install the dependencies using the
requirements.txtfile. - If you encounter server selection issues, the app will default to auto-selecting the best server.
License
This project is licensed under the MIT License. See the LICENSE file for details.
Images
Here are some screenshots of the tool:
Release files for speed-test-tool 1.0.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| speed-test-tool-1.0.1.tar.gz | 17.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| speed_test_tool-1.0.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 33.3 kB
Release files / speed-test-tool-1.0.1.tar.gz
| Download URL | speed-test-tool-1.0.1.tar.gz |
|---|---|
| Size | 17.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
553fcfb2b69f75fa74fabd4d926da4fce79ea6bb826ca8a70af102066aca9a14
|
|
BLAKE2b-256 checksum How to use checksums |
f8e79b3335e13ebcd9217619f1595e94d7a113e7560584539d0633ea99ab4a80
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.11.7
|
Release files / speed_test_tool-1.0.1-py3-none-any.whl
| Download URL | speed_test_tool-1.0.1-py3-none-any.whl |
|---|---|
| Size | 15.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b326c9c16529d186329adda3c4727216d1fdac43bc248bae3bab2955286b2f08
|
|
BLAKE2b-256 checksum How to use checksums |
c41523cf015b5c0a2f78c3ecd6b4778f11a91b75bc9bb5e46a4ada5e99fdc434
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.11.7
|