4 Key Validation Areas and Tools for Mobile Performance Testing - "The Ugly Duckling"
I consider Performance Testing the "ugly duckling" of testing. It should be part of the testing strategy by default but quite often neglected by teams. There are couple of reasons for this-
-We do not plan for doing performance testing and just run out of time
-We do not know what to do in terms of Performance testing. This is especially true for mobile apps
So, here are my thoughts based on my experience doing performance testing. I listed down some tools which can help you do the same
First of all, there are some "Key Performance Validation Areas" to make note off; when testing your mobile applications. These are things you want to avoid as much as possible or have minimal use, when using them for your mobile apps
Dynamic Images
If your mobile application/website contains a lot of dynamic images and they are refreshing say every 2 seconds, then the chances are; the pages are going to take a lot of time to load, the user is going to face a lot of lag and the mobile app in general is going to be slow. On top of this, it is bad user experience. If you have too many dynamic images on your pages, it gets distracting for the user. Avoid them if possible.
Map Integrations
Having Maps integration (Apple/Google maps) can consume a lot of memory and storage in your app. You need to be really careful when you embed these in different pages of your mobile apps. E.g. If you are using a Restaurant app, it makes sense to have a Google Map widget below the address information as the user wants to know where it is exactly located. At the same time, it DOES NOT make sense to add it to each and every page where you are showing the Breakfast menu, Lunch Menu, Dinner Menu, Dessert Menu etc.
Web Service Calls
I had a situation once, where clicking on a "Log in" button in a mobile application, took me 30 seconds to get to the next page. I started researching why the app is taking so much time to load the next page. After some research, I found out that, one button click (in this case the Log In button) lead to 10 web service calls (requests/response). What this means is, when I clicked on a button, a request was generated to a server, that server re-routed the request to another server, then another server, then another server (I think you get the point now...) and finally I get a response from the server to give me access to my home page as I had given valid username and password.
So a lesson learned from this real life experience is, avoid unnecessary web service calls. This will help to get good response times and improve the overall performance of the application.
Client Side Validations
Try to avoid a lot of client side validations on your applications. This is especially true with websites where I noticed that, we end up doing a lot of validation on the client side to handle different scenarios like invalid inputs in text boxes, dialog boxes and other kinds of validation that happens. The more validation you do on the client side, the slower your apps are going to be. So, try as much as possible to give these responsibilities to the servers and just send a request and get a response back.
The above 4 are the big hitters in terms of things to look out for while doing performance testing, in almost any kind of application
Secondly, here are some of the Tools I have used/currently using to do performance testing/monitoring.
Performance Monitoring/Testing Tools
Instruments (Free) part of Xcode adb tool (Free) part of Android
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/
If you have any other tips/tricks, feel free to share it in the comments below or let me know by contacting me here-> http://www.rajsubra.com/contact/