networkQualityMeasure upload, download and responsiveness in parallel (about 20 seconds).
When to use it
Use networkQuality instead of a speed-test website when you want a quick, ad-free test, to compare Wi-Fi and Ethernet, or to measure responsiveness: how much your latency suffers when the line is busy (bufferbloat).
Steps
Run the default test
Open Terminal and run it. Uploads and downloads run at the same time, which stresses the connection like real use.networkQualityTest each direction separately
-s runs download then upload, which gives a clearer capacity number for each.networkQuality -sTest one interface
Compare Wi-Fi (en0) and an Ethernet adapter by binding the test to each.networkQuality -I en0Get more detail
-v adds the test servers, flows and latency details; -c prints JSON for scripts.networkQuality -v
Output explained
A real run on home Wi-Fi:
==== SUMMARY ====
Uplink capacity: 89.231 Mbps
Downlink capacity: 150.201 Mbps
Uplink Responsiveness: Low (379.422 milliseconds | 158 RPM)
Downlink Responsiveness: Low (380.168 milliseconds | 157 RPM)
Idle Latency: 70.018 milliseconds | 856 RPM
- Capacity is throughput in megabits per second.
- Responsiveness is how many round trips per minute (RPM) still fit while the line is loaded. Low (here about 380 ms per round trip) means heavy bufferbloat: calls and games suffer whenever someone downloads. Medium and High are better.
- Idle Latency is the round trip with no load. The gap between idle (70 ms) and loaded (380 ms) is the bufferbloat.
Smart queue management (SQM) on the router usually raises responsiveness from Low to High.
Options and variations
| Flag | Meaning | Example |
|---|---|---|
| -s | Run download and upload sequentially | networkQuality -s |
| -d / -u | Skip the download / upload test | networkQuality -u |
| -I IF | Bind to an interface | networkQuality -I en0 |
| -v | Verbose output | networkQuality -v |
| -c | Computer-readable (JSON) output | networkQuality -c > result.json |
| -f h3 | Force a protocol (h1, h2, h3, L4S) | networkQuality -f h3 |
| -M N | Maximum runtime in seconds | networkQuality -M 10 |
Common errors
| Error | Cause | Fix |
|---|---|---|
| Error: The Internet connection appears to be offline | No network connection | Check Wi-Fi or Ethernet first. |
| Results much lower than your plan over Wi-Fi | Wi-Fi is the bottleneck | Test with -I on Ethernet to compare. |
Do it in the app
networkQuality measures the connection; LightAtom's connections view shows which app is using it, which explains a sudden drop in results.
Frequently asked questions
Does a Mac have a built-in speed test?
Yes. Run networkQuality in Terminal on macOS 12 or later. It measures download, upload and responsiveness against Apple's servers.
What does RPM mean in networkQuality?
Round trips per minute: how many request-response cycles the connection completes per minute while it's busy. Higher is better; it reflects how responsive apps feel under load.
Why is my networkQuality responsiveness Low?
Latency rises a lot when the line is loaded, usually due to bufferbloat in the router or modem. Enabling smart queue management (SQM) on the router typically fixes it.