How do I check mobile application performance/load testing?
Currently, I have checked the app performance over different networks like 2g, 3g, wifi but I want to check how the app will behave when multiple users access simultaneously?
One problem you will face is that some mobile phones are just awful at networking and they can have drastic effects on some networking protocols.
This question comes up a lot in mobile testing and its often confused with testing the backend. Unless your mobile app is specifically peer-to-peer then it seems you want to drive your backend with multiple users.
If the purpose of your test is just 'can a user login more than once' then you could just do an exploritory test by driving the API with Postman.
If you want to simulate one user trying to DOS you with multiple logins and check you mitigate , i would take the postman materials and repurpose them into JMeter tests like Dimitri T suggested.
It seems like this is not a high value test in that its about safegaurding your infra which doesn't have a clear user value because it fundamentally about bad users. Obviously a DOS attack is not great but you can just lock out that user.
Its important to consider the value of the test when deciding how much effort to put in.
You can use a load testing tool like Apache JMeter to simulate hundreds or thousands of users concurrently using your application.
You can use JMeter's HTTP(S) Test Script Recorder to capture the traffic from mobile devices to the backend server and replay it with increased number of virtual users.
See Load Testing Mobile Apps Made Easy guide for more information on JMeter and mobile device configuration.
If you have access to the source code, you can compile and run the application in a emulator:
android studio:
in xcode:
You can also use third party cloud services like Amazon Device Farm or Firebase Test Lab.
I have used the following tools to to performance/load testing-
Android Debugger tool - https://developer.android.com/studio/command-line/adb.html. You can get various performance metrics by this free tool you can use on Android Apps.
Instruments - If you have an iOS app, I would recommend using Instruments that comes free as part of Xcode. It helps to find different vulnerabilities in your app like Memory Leaks, Page load times etc.
Check out this tutorial - https://developer.apple.com/library/archive/documentation/DeveloperTools/Conceptual/InstrumentsUserGuide/LaunchingInstruments.html#//apple_ref/doc/uid/TP40004652-CH7-SW1
These are the tools I would recommend to start with. Then you can explore other tools such as
NeoLoad - https://www.neotys.com/neoload/overview
WebLOAD (Free - 50 virtual users)— http://www.radview.com/webload-download/
LoadComplete - https://smartbear.com/product/loadcomplete/overview/
Apache Jmeter (Free)- http://jmeter.apache.org/
BlazeMeter - https://www.blazemeter.com/
Hope this information helps you out.
-Raj
So, there are three main components of mobile app performance:
When it comes to the backend, the things related to performance that are important to know when an app is under load are the server response times, database queries times, and the server’s resource usage.
This is where load testing with a tool like BlazeMeter or JMeter come into play.
With client-side testing, the variety of devices, operating systems and screen sizes of a device that an app is running on comes into play.
There are several areas with different metrics you can gather to understand client side mobile app performance:
Device resource usage (How the app uses the resources of the device it’s running on)
Rendering (Measures how the app is drawn on the device):
Errors
Transaction response time (how long it takes to complete an action):
For native apps, there are profiling tools such as Android Studio and Instruments (for Android and iOS respectively). These help when debugging an app and finding the root of certain kinds of performance problems.
In addition to Android Studio and Instruments, you can use Apptim, a tool that gives development teams access to mobile app performance information and KPIs, where anyone can quickly and easily run tests. What's cool about it is the in-depth reports you get and the fact that it works for both iOS and Android apps. It also integrates with JIRA and lets you record bugs.
Hope this helps!