Skip to main content

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

  1. Clone the repository:

    git clone https://github.com/s3bu7i/Speed-Test-CLI.git
    cd Speed-Test-CLI
    
  2. Install the required dependencies:

    pip install -r requirements.txt
    
  3. Run the application:

    python main.py
    

Usage

Main Menu Options

  1. Run Speed Test: Perform a single speed test and view results.
  2. Run Multiple Tests: Perform multiple speed tests and calculate average results.
  3. View Historical Data: View saved results from previous tests.
  4. Export Historical Data to CSV: Save historical data in a CSV file for analysis.
  5. 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.csv from the main menu.

Troubleshooting

  • Ensure Python 3.7 or later is installed.
  • Install the dependencies using the requirements.txt file.
  • 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: Mainmenu Functions

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

speed-test-tool-1.0.1.tar.gz (17.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

speed_test_tool-1.0.1-py3-none-any.whl (15.4 kB view details)

Uploaded Python 3

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

Hashes for speed-test-tool-1.0.1.tar.gz
Algorithm Hash digest
SHA256 553fcfb2b69f75fa74fabd4d926da4fce79ea6bb826ca8a70af102066aca9a14
MD5 bea50eaa8c36b0cb9829ccb730ce05ba
BLAKE2b-256 f8e79b3335e13ebcd9217619f1595e94d7a113e7560584539d0633ea99ab4a80

See more details on using hashes here.

File details

Details for the file speed_test_tool-1.0.1-py3-none-any.whl.

File metadata

File hashes

Hashes for speed_test_tool-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 b326c9c16529d186329adda3c4727216d1fdac43bc248bae3bab2955286b2f08
MD5 cda2848fe7a76dea0eea6a0df67cac31
BLAKE2b-256 c41523cf015b5c0a2f78c3ecd6b4778f11a91b75bc9bb5e46a4ada5e99fdc434

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page