When testing mobile apps, functional validation is only half the story. A lot of critical issues surface during non-functional testing, especially in areas like interruption testing. One of the key subcategories under interruption testing is network interruption testing. Some features that work flawlessly on a strong Wi-Fi connection can slow down, fail silently, or time out when the network becomes weak or unstable.
During one of our previous engagements, a colleague noticed some inexplicable failures in an app we were testing. After some digging, we discovered the real culprit: the device was on an unusually slow network. That, in turn, led us to explore reliable ways to simulate poor network conditions during testing.
Why this post
We wanted a practical way to test the app’s behaviour on a slow or unstable network without relying on premium tools or expensive network simulators. We tried a few apps that claimed to simulate slow networks, but the results were mixed. Some didn’t work as expected, while others required paid versions to unlock throttling features.
Setting up a Slow Network Using Ubuntu
Since I am using an Ubuntu machine, this post focuses on how to simulate slow network conditions on a Linux-based system. On Windows, you may need to use a third-party tool (e.g., NetLimiter or Clumsy) to throttle the network, as we are not aware of a built-in tool like Traffic Control. Let us know in the comments if you know of one.
Step 1: Before creating a Wi-Fi hotspot
Most laptops cannot use the same Wi-Fi card to both connect to a Wi-Fi network and broadcast a hotspot at the same time. This means that when you enable a hotspot, your existing Wi-Fi connection will disconnect.
The simplest setup is to use a wired (Ethernet) connection for internet while your Wi-Fi card handles the hotspot.
If you don’t have Ethernet, you can use one of the following alternatives:
* A USB Wi-Fi adapter (use one adapter for Wi-Fi, and the built-in adapter for the hotspot)
* USB tethering from your phone to provide internet to your laptop, and then create the hotspot from the laptop
Step 2: Use your system as a Wi-Fi hotspot
To create a hotspot from your Ubuntu system:
1. Go to Settings/Wi-Fi
2. Turn on Wi-Fi Hotspot
3. Set your Network Name and Password
4. Connect your mobile device to this newly created hotspot
Once connected, your phone’s internet traffic flows through your Ubuntu system, allowing you to control and throttle the network speed from your laptop.
If you’re on Windows, you can follow this guide: How to Turn Your Windows PC Into a Wi-Fi Hotspot
Step 3: Throttle network speed using tc (Traffic Control)
Ubuntu includes a built-in tool called tc (Traffic Control) that lets you simulate slow, unstable, or high-latency networks without installing anything extra. This is the method we used.
1. Identify your Wi-Fi interface
First, find the interface that your hotspot is using:
ip link show |
Look for the active Wi-Fi interface. (For example, on my system it was wlp0s20f3.)
2. Apply throttling (simulate slow network)
Here’s an example of limiting bandwidth and adding latency:
sudo tc qdisc add dev wlp0s20f3 root tbf rate 128kbit burst 16kbit latency 600ms |
This sets:
* Speed: 128 kbps
* Burst buffer: 16 kb
* Latency: 600 ms
You can adjust these values based on the network condition you want to test.
3. Remove throttling (restore normal speed)
When you’re done testing:
sudo tc qdisc del dev wlp0s20f3 root |
There you have it. Once you apply the tc rules, your Ubuntu system will slow down the network on the hotspot. Any device connected to it, including your phone, will experience the reduced speeds and added latency. This gives you a practical way to observe how your app behaves when the network isn’t ideal.
Conclusion
Real-world networks are messy, and app behaviour changes drastically under stress. Setting up a controlled slow network on Ubuntu turned out to be a quick, practical way to test these scenarios. It doesn’t replace full-scale network simulators, but it’s more than enough for everyday testing. Hopefully this walkthrough helps you bring more realistic network checks into your workflow.
Need help going beyond “real-world” testing? Contact Qxf2
Many teams assume that testing in real-world conditions is just about using the app the way a user would. But as QA engineers, we need to go a step further, we must recreate those conditions intentionally, control them, and make the tests repeatable. That’s where thoughtful techniques like network throttling really add value.
At Qxf2, we specialize in designing practical, repeatable tests for messy real-world scenarios like slow networks, interruptions, unpredictable environments, and more. If you need help bringing this level of depth into your testing workflow, reach out. We enjoy the technical challenges others overlook.

I am a dedicated quality assurance professional with a true passion for ensuring product quality and driving efficient testing processes. Throughout my career, I have gained extensive expertise in various testing domains, showcasing my versatility in testing diverse applications such as CRM, Web, Mobile, Database, and Machine Learning-based applications. What sets me apart is my ability to develop robust test scripts, ensure comprehensive test coverage, and efficiently report defects. With experience in managing teams and leading testing-related activities, I foster collaboration and drive efficiency within projects. Proficient in tools like Selenium, Appium, Mechanize, Requests, Postman, Runscope, Gatling, Locust, Jenkins, CircleCI, Docker, and Grafana, I stay up-to-date with the latest advancements in the field to deliver exceptional software products. Outside of work, I find joy and inspiration in sports, maintaining a balanced lifestyle.
