Why is Mobile App Testing Important for App Development?

A process of testing the Functionality, Consistency, and Usability of a developed mobile application for different companies is known as mobile app testing. Mobile app testing can be Automated or Manual type of testing. The variety of mobile devices is growing every day. Every device has its own whims, GUI’s and processing abilities.

Consequently, Mobile App Testing has become a strategic aspect of every single App Development Process. In the last few years, testing of mobile application has become very important and a point concern for the app development companies. Mobile Testing if done in a proper manner, the number of bugs can be consequently reduced. A proper mobile application testing lets you identify the bugs at the initial stage of the development lifecycle.

Globally, entrepreneurs and companies are gushing to develop mobile applications to capture the vast opportunities for mobile commerce.

Once the developers have fully developed their application it is wise to check whether the app is flawless in performing the various fundamental functions or not. The best personnel id to undertake this is to the expert QA team as they are to scrutinize on the standards and performance of the application. This encompasses assessing the compatibility with the existing infrastructure of the application.

Mobile App Testing Work Flow

To understand the broad aspect of Mobile App Testing it is important to break it down into a specific type of testing for a better understanding.

● Functionality Testing: Ensures the functionality of your application and reduces product issues including integration testing with service providers.

● Automated Regression Testing: Reduces testing resources of the company via automated mobile regression testing on multiple device types and mobile operating systems.

Usability and Compatibility Testing: Verifies the effectiveness of the application, including its operability on different carriers and browsers for various smart phones as well as tablets.

● Connectivity Testing: Test the behavior of an application under a variety of conditions, transitions and states with different connections types i.e. Wi-Fi, 3G, EDGE, etc.

● Compatibility and Certification Testing: To ensure the content, application or mobile website works exactly the same as detailed in requirements. It also ensures software performance under various hardware conditions.

● Performance and Scalability Testing: It prevents tech glitches and bottlenecks as the user-base of the application grow all while delivering a seamless end user experience.

● Performance and Battery Life Testing: Tests the performance and load time to verify that the application runs smoothly on targeted devices under various conditions- all while minimizing battery consumption.

App testing will help in strategizing on how to allocate resources for various activities such as maintenance, marketing, development branding, and launching of an application. When all this is put to use, it will help to minimize costs and maximize the revenue. A recently estimated 2 billion mobile and tablet users made some form of mobile commerce transaction. With out-thrust only indicating an increase in this, there is no turning back on M-Commerce as it is up to the business to capitalize on this venture and generate more revenue.

JMeter Distributed Testing: Step by Step

Pre-Requisites for Distributed Testing

For distributed testing using JMeter, we need to make some specific configurations both on the Master as well as the Slave machines.

Basic Requirements that both Master and the Slaves machines should have in common:

  • Same Java version
  • Same JMeter version (It’s better to copy the JMeter from one machine to the rest of all)
  • All machines should be on the same subnet

This doc will give you a brief idea about doing Distributed Remote testing using a Windows machine as the master and Linux machines as slaves.

Slave Configuration

After having a similar copy of JMeter in the slaves, follow the below steps for all the Slave machines:

1) Open jmeter-server file present in the bin directory of jmeter and uncomment the below line –

RMI_HOST_DEF=-Djava.rmi.server.hostname=xxx.xxx.xxx.xxx
Also instead of xxx.xxx.xxx.xxx, give the ip of the linux machine you have opened.

2) Give a specific rmi port no. in the below line of the same jmeter-server file –

${DIRNAME}/jmeter ${RMI_HOST_DEF} -Dserver_port=${SERVER_PORT:-2010} -s -j jmeter-server.log “$@”

This port will be further used in the master configuration, hence give different ports for all the different slave machines.

3) After making the above changes, execute JMeter-server on all the slaves.

Master Configuration 

The following changes need to be done for the master setup:

1) Open jmeter.properties present in the bin directory on the Master machine and mention all the slave ips in as remote hosts with the ports assigned in the above slave configuration –
remote_hosts=localhost: 1099, 104.239.234.143:2010
Localhost need not be mentioned if you do not want to use the Master machine to be a part of remote testing to put the load on the application.

2) Set the server port in the same jmeter.properties file 
-server_port=1099

3) After making the above changes, execute jmeter-server.bat on your Windows master machine which will be present in the bin directory.

4) Now execute jmeter.bat on Master machine for your JMeter GUI where the execution will be done and viewed.

Please note that the number of Virtual Users that will be assigned in the thread group in your JMeter GUI, an equal number of users will be generated from each of the machines you are using. For e.g.: let’s say we have one Windows as the master and two Linux machines as the slaves and the VUsers assigned is 10, then a total of 30 users will be making hits on the application under test.

Execution Methods

After doing the slave and master setup, open the scenario to be executed and execute in any of the 2 below methods:

1) Go to Run->Remote Start All. You can also Go to Run->Remote Start and select any one of the machines you wish to generate load.

2) On the top panel, we have a button for the remote start (After the test has completed, c lick on the button beside in red to remote stop all)

Exceptions and Workarounds

“Connection refused” is a common error that we encounter during remote distributed testing. For this, one should try the below checks:

1) Make sure the remote host entries and the ports assigned both on the master and slave are correct. Also, jmeter-server should be executed first followed by the jmeter-server.bat and jmeter.bat on the Master machine.

2) Verify the firewall settings on Windows and Linux machines. Disable if required. On Linux, that can be achieved by the below command: