Simulating slow network speeds for mobile app testing using your laptop as a hotspot

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.


Leave a Reply

Your email address will not be published. Required fields are marked *