
Network Speed & Quality Tester
Custom Network Diagnostic Tool for Speed, Latency, Jitter, and LAN Throughput Testing
The Network Speed & Quality Tester is a custom Python desktop application I developed to make internet and local network troubleshooting faster, clearer, and more repeatable.
Most network problems start with a vague complaint: “the internet is slow,” “gaming is lagging,” “calls are choppy,” or “streaming keeps buffering.” The problem is that those symptoms can come from several different places: the local device, the router, DNS, Wi-Fi, the ISP connection, upload congestion, packet loss, or poor latency.
I built this tool to separate those problems instead of guessing.
The application runs a structured set of network checks from one interface, including WAN speed testing, router and internet latency checks, jitter measurement, packet loss estimation, optional LAN throughput testing with iPerf3, live activity logging, and exportable reports. The source version includes a connectivity pre-check, Speedtest CLI/API fallback, ping testing, optional iPerf3 throughput, live progress logging, and JSON/TXT result export.
Why I Built It
I built the Network Speed & Quality Tester because standard speed tests only tell part of the story.
A normal online speed test may show download and upload speed, but it does not clearly explain whether the real issue is:
- The internet provider
- The router
- DNS resolution
- Local LAN performance
- Packet loss
- Jitter
- Wi-Fi instability
- Upload congestion affecting gaming, streaming, and VoIP
For real troubleshooting, I wanted one tool that could check multiple layers of the connection and give a plain-English result that is useful to both a technical person and a regular user.
This program was designed to reduce guesswork, speed up troubleshooting, and create a repeatable process for testing network quality.
What the Program Does
The Network Speed & Quality Tester performs several checks from a single GUI.
It starts with a Connectivity Pre-Check, which verifies the local IP address, subnet mask, default gateway, DNS resolution, gateway response, and basic internet reach-ability.
It then runs an Internet/WAN Speed Test to measure download speed, upload speed, latency, jitter, packet loss when available, and the selected speed test server.
The tool also performs Router and Internet Ping Testing to compare local network latency against external internet latency. This helps determine whether delay is happening inside the local network or outside of it.
For LAN testing, the program includes an optional iPerf3 throughput test, allowing local network performance to be measured between two endpoints.
Finally, the program provides practical guidance for gaming, streaming, and VoIP, explaining whether the connection quality is likely to support those uses.
Key Features
Connectivity Pre-Flight Check
Before running the full test, the tool checks whether basic network connectivity is working. It identifies the local IP address, netmask, gateway, DNS status, and gateway/internet ping results.
This helps answer the first important question:
Is the computer actually connected correctly before we blame the ISP?
WAN Speed Testing
The program checks internet download and upload speed using Speedtest functionality. It supports Speedtest CLI when available and falls back to a Python speedtest method when needed.
This gives a quick view of available internet bandwidth and basic latency.
Latency, Jitter, and Packet Loss Checks
The tool tests both the router/gateway and an internet host. This matters because a connection can have decent speed but still perform poorly for gaming, VoIP, remote work, or video calls if latency or jitter is unstable.
Optional LAN Throughput Testing with iPerf3
The program can run an iPerf3 client test to measure local network throughput. This helps test LAN/router-side performance separately from internet speed.
During development, I ran into an issue where iPerf3 was installed but the GUI could not find it through the normal system PATH. I updated the program to accept a direct
iperf3.exe
path, allowing the LAN throughput test to run even when Windows did not expose iPerf3 correctly to the application. The troubleshooting notes confirm that the WAN speed test was unaffected and that the iPerf3 issue only impacted the Router/LAN Throughput section.
Live Activity Log
The program includes a live log so the user can see what the tool is doing while tests are running. This is useful for transparency, troubleshooting, and confirming whether the program is waiting, testing, failing, or successfully receiving replies.
Exportable Results
The tool can save test results as JSON or as a readable text report. This makes it useful for documentation, before-and-after testing, customer support notes, or tracking recurring connection problems.
Practical Value
The value of this program is not just that it runs a speed test.
The value is that it helps narrow down where the problem is.
A slow or unstable connection can waste a lot of time because people often jump straight to the wrong conclusion. They may blame the ISP when the issue is Wi-Fi. They may replace a router when the problem is DNS. They may think download speed is the issue when jitter or upload congestion is really causing bad calls or lag.
This tool turns a scattered troubleshooting process into a repeatable workflow.
A manual version of these checks could require opening command prompts, running IP configuration checks, ping tests, DNS checks, speed tests, iPerf3 commands, and then manually documenting the results. This program puts those steps into one interface and produces cleaner output.
That makes the tool useful for:
- Troubleshooting home or small-business network complaints
- Comparing wired vs. wireless performance
- Checking router/gateway response
- Identifying DNS or WAN issues
- Testing gaming, streaming, and VoIP readiness
- Documenting test results before and after changes
- Reducing unnecessary guesswork
Technical Development Notes
This application was built in Python using a Tkinter GUI.
The program uses several different testing methods depending on what is available on the system. It can use Speedtest CLI for richer live progress, fall back to a Python speedtest method, run ping tests, detect gateway and subnet information, and optionally use iPerf3 for LAN throughput testing.
One of the more important updates was improving iPerf3 detection. The original issue was that iPerf3 had been installed through WinGet, but the application could not locate it through PATH. To solve this, I added an optional direct path field for
iperf3.exe
and logic to search common WinGet installation locations. The final result allowed the program to find iPerf3 and successfully return LAN throughput results.
This was a good example of practical software troubleshooting: the problem was not just writing the feature, but making the tool work reliably in a real Windows environment.
Example Test Output
In one test run, the tool confirmed that basic LAN, WAN, and DNS connectivity looked healthy. It reported WAN download/upload results, internet latency, jitter, router/internet ping data, and LAN throughput results through iPerf3.
What This Project Demonstrates
This project demonstrates my ability to combine networking knowledge, troubleshooting experience, and software development into a practical tool.
It shows experience with:
- Network diagnostics
- WAN vs. LAN troubleshooting
- Latency and jitter analysis
- Packet loss testing
- DNS and gateway validation
- iPerf3 usage
- Windows PATH/environment issues
- Python GUI development
- User-focused reporting
- Turning repetitive troubleshooting steps into a reusable application
The larger point is that I did not build this just to write code. I built it because I recognized a real troubleshooting problem and created a tool to make the process faster, clearer, and more useful.