How to Simulate Low Network Speed to Test Your Mobile Application

Written by forasoft | Published 2021/01/28
Tech Story Tags: qa-mistakes-to-avoid | how-to-do-better-qa | qa | app-testing | testing-ios-apps | ios | mobile-app-development | good-company

TLDRvia the TL;DR App

In this article, we’ll show how to spoil the Internet on a test device with no hassle. 
When testing mobile apps, newbies QA frequently forget to check the app with an unstable Internet connection. But in many cases this is critical: connection speed directly influences user experience and workability of the main functions. It is especially true for applications where geolocation and mobile Internet are heavily in use.
For example, video chats, messengers, and other multimedia products we specialize in.

iOS

Let’s start with a standard utility Network Link Conditioner for iOS apps testing. It lets the QA adjust the Internet connection as he needs.
To switch on this function on iPhone, you need a Mac OS device:
  1. Download and install Xcode for Mac
  2. Open Xcode on Mac
  3. Connect iPhone to Mac
  4. Allow Mac access iPhone
  5. Open Settings on iPhone
  6. Scroll down
  7. Tap “Developer”
  8. Tap “Network Link Conditioner”
  9. Pick network preset or create your own
  10. Switch on the toggle “Enable”
iOS lets us choose one of pre-installed presets of connection quality – or create our own preset.
For our own preset these settings are available:
Here we see that Apple took care of testing apps with different levels of connection quality and gave us almost all the needed settings.
Having got acquainted with Network Link Conditioner for iOS, we’ve been sure such a feature would be on Android too. God, how much we’ve been mistaking.
Android
It appeared to be impossible to emulate a slow or unstable connection on a real Android with the help of standard tools. Therefore, I faced 2 paths: download some apps from Google Play that emulate slow connection, or use a specifically precise adjustment of the Internet connection access point.
Apps didn’t work out for me ☹ All the apps that give this function require Root access, and this breaks the concept of testing in real-world conditions.
So, having left the Root access as the last resort, I decided to closer look at path #2 – adjustment of the access point.
In the past, when being a student, mobile internet traffic was ending up quickly (and we needed to read, watch something while on the lesson), and we used iPhone as an access point. The idea came to mind: to mix the student experience and recently gathered knowledge.
If we use Network Link Conditioner and access point made of macOS or iOS devices does not require any extra knowledge and is easy to adjust. Exactly what’s needed if we want to save time. 
So, to emulate bad connection on Android we need the Android device and… iPhone with Developer Tools switched on.
Make iPhone the access point (Settings > Modem regime)Adjust connection with Network Link ConditionerConnect to the access point with the AndroidReady. You’re awesome 🙂
Of course, the ways to break the Internet we considered in this article are not the only solution. We’ll tell about more complicated options, such as Android and iOS emulators, in the next article.
Thanks and see you soon!
Always yours, 
Dima and Fora Soft QA team 😎

Written by forasoft | Pioneers in video software development since 2005. 107 geeks #eager2develop
Published by HackerNoon on 2021/01/28