A simple CLI tool for downloading files with progress tracking
Project description
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:
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file speed-test-tool-1.0.1.tar.gz.
File metadata
- Download URL: speed-test-tool-1.0.1.tar.gz
- Upload date:
- Size: 17.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
553fcfb2b69f75fa74fabd4d926da4fce79ea6bb826ca8a70af102066aca9a14
|
|
| MD5 |
bea50eaa8c36b0cb9829ccb730ce05ba
|
|
| BLAKE2b-256 |
f8e79b3335e13ebcd9217619f1595e94d7a113e7560584539d0633ea99ab4a80
|
File details
Details for the file speed_test_tool-1.0.1-py3-none-any.whl.
File metadata
- Download URL: speed_test_tool-1.0.1-py3-none-any.whl
- Upload date:
- Size: 15.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b326c9c16529d186329adda3c4727216d1fdac43bc248bae3bab2955286b2f08
|
|
| MD5 |
cda2848fe7a76dea0eea6a0df67cac31
|
|
| BLAKE2b-256 |
c41523cf015b5c0a2f78c3ecd6b4778f11a91b75bc9bb5e46a4ada5e99fdc434
|