Internet Speed Monitoring Made Easy
This application is designed to automatically measure and analyze internet connection speed, offering insights into ping, upload speed, and download speed. By aggregating data from multiple reputable internet speed testing services like Speedtest.net, Fast.com, and Broadbandspeed.co.uk, the app provides an accurate and objective view of your connection's performance over time.
Users can select specific services for testing, define the number of consecutive tests to perform, and review results through detailed analysis and visualizations. This tool is particularly useful for those seeking real-time internet speed monitoring and an unbiased average by combining multiple sources and repeated tests.
Software and Tools
The application is built using Python in PyCharm, with the following technologies:
- Tkinter: Provides a lightweight graphical user interface for easy interaction.
- Selenium WebDriver: Automates browsers to retrieve and scrape data from speed testing websites.
- Matplotlib: Used to generate visualizations such as charts for better data analysis.
- CSV File Handling: Saves all test results, along with the corresponding date and time, in .csv files for easy access and export.
Currently, the app supports Speedtest.net, Fast.com, and Broadbandspeed.co.uk, but it can be expanded to include additional services. Its modular structure ensures flexibility in integrating new sources that measure connection speed and ping.
- Image: test results
- Image: chart visualization
The app can be upgraded to save all the data to SQL Lite local database or to web cloud database (MySQL or Postgre SQL) for saving data of multiple users. It will provide functions like analysing speed for the periods, for different times of day, for different internet providers, for different speed checking services, etc. etc... The app is deployed for Windows (with pyInstaller) but can also be deployed for MacOS or Linux.
Key Features
1. Automated Testing:
• Fully automatic mode: The app opens websites, runs tests, and scrapes data without user intervention.
• All you need to do is set up the desired parameters, click "Start," and enjoy a cup of tea while the app works!
2. Customizable Testing Options:
• Choose specific speed testing services.
• Define the number of consecutive tests for each service to get a robust dataset.
3. Data Analysis and Visualization:
• All results are saved in .csv files with timestamps.
• Results include ping, upload speed, and download speed, with calculated min, max, and average values.
• Generate visual insights with Matplotlib charts for easy interpretation.
Future Upgrades
The app is designed with scalability in mind, with potential enhancements including:
- Database Integration:
- Save data to a SQLite local database or a web cloud database (e.g., MySQL or PostgreSQL) for centralized storage.
- Analyze connection trends over extended periods, track performance at different times of day, or compare data across internet providers and speed testing services.
- Cross-Platform Deployment:
- Although currently deployed for Windows using PyInstaller, the app can also be packaged for macOS and Linux.
- Multi-User Support:
- Cloud database integration could enable multi-user functionality, allowing users to share data and compare results.
This Python-based internet speed monitoring app combines automation, flexibility, and insightful analysis, making it a valuable tool for users who want reliable connection performance data. With its extensible design, it offers significant potential for future upgrades, such as advanced data analytics and cross-platform compatibility. Whether you're troubleshooting your internet connection or simply curious about its performance, this app provides a comprehensive and user-friendly solution.
Link to app : https://sergerex.itch.io/internet-speed-checker
Link to source code : https://github.com/SergeRex/Multi-Service-Internet-Speed-Checker