Load Testing

What is Load Testing?

Load Testing
Load testing is one of the simplest forms of performance testing. This type of testing involves the evaluation of software or system behaviour and response, under variant types of loads. These loads are based on end users actual demands that are expectable from them, while using the software product.

The principle of load testing is to continuously increase the load on the software, until it reaches its threshold limit, and subsequently evaluating its performance and behaviour, with respect to these increments in the load. It is generally, performed to assess the system's behaviour in normal under normal and peek conditions, along with the estimation of maximum capacity of a software or system, to withstand the particular load.

Is Load testing same as Stress testing?

Although, both Load testing and Stress testing are the forms of performance testing, but their approach and goals are different. Stress testing is the larger and ferocious version of the load testing.

Load testing is performed with the vision of assessment of system's behaviour under different types of load, to determine reliability of the system to endure the maximum capacity, whereas, stress testing is usually carried out, with the goal of breaking down the system, by burdening it with excessive work load, in the dearth of resources, to examine the stability and robustness of the system.

In simple words, if load testing means large number of users are accessing the system, to execute their jobs. Stress testing, than would mean, indefinite number of users are using the system, to complete their job in limited or less time, under the scarcity of resources such as data and space.

Key aspects of Load testing:

Load testing, generally focuses on following features, during its execution:

  • Utilization of the resources.
  • Responsiveness of the system.
  • Input and relative output of the system.
  • Maximum load of simultaneous access to system, by the users.
  • Breaking point of the system.
  • Business-related metrics

Features of Load Testing:

  • A type of performance testing, to study the behaviour of the system under variant or specific load.
  • Generally, carried out for normal and peek conditions.
  • It is also a non-functional type of testing.
  • Load may include increment in the number of simultaneous users.
  • Carried out in controlled environment, especially in labs to distinguish and measure the accurate capabilities of two different systems.
  • Provides actual experience of simultaneous access to system by multiple users, in real-time environment.
  • Can also be tested, by providing empty or no task to the system, to record the response of system under zero load situation.

Do's and Don'ts of Load Testing:

  • Clear browser cache and cookies before recording traffic. When the cache and cookies are not clean, while recording a user scenario, the web browser uses cached data and cookies to process client requests instead of sending data to and receiving responses from the server. However, while running the scenario, Load Complete does not use the cache. It actually sends requests to and receives responses from the server. This may cause a difference between the recorded and actual response codes. Load Complete reports this difference as warnings or errors, and the load test is treated as failed.
  • Start recording a new scenario from the web browser's start. If you start recording a scenario after you connect to the tested web server and open a few web pages, the playback of the scenario will fail. This will happen because the recorded traffic will not reproduce the authentication procedure, and the tested web server will ignore the simulated requests.
  • Parameterize scenarios to simulate more realistic load on the server.  Parameterizing scenarios involves replacing recorded parameters in the requests with variable values. This way you can make virtual users send user-specific data to the server. This lets you add dynamic behaviours to your scenarios as if they were run by a group of unique human users. Note: Before you parameterize a scenario, carefully explore its requests and responses to better understand what data is being transferred to and received from the server.
  • Verify user scenarios. Before creating tests on the basis of a recorded scenario, make sure that the scenario is executed successfully for one virtual user. This can help you identify bottlenecks of the scenario and eliminate problems which are not related to the number of virtual users and additional testing conditions.
  • Arrange user scenarios in your tests so that critical functionality is tested first. And remember to analyse and report on your results!
  • Do not run tests in real environments. A real environment can have other network traffic, and this may affect test results. To avoid excess data transfer, use a test environment that behaves in the same way as the real environment except that there is no other traffic usage.
  • Do not try to crash the tested server. The goal of web server performance testing is not to break the server, but to identify web application performance bottlenecks under various loads.
  • Do not browse web pages during test runs. This may affect the traffic simulation and make the test fail.
  • Do not overly stress the client test systems.
  • Do not use zero think time. Make sure that think time in your test is based on real-life conditions. Using zero think time does not provide realistic user simulation and puts an abnormal load on the tested server. However, omitting think time can help you determine bottleneck issues.

Mobile Load Testing:

In the present era, mobile apps are used to, get encountered with the huge amount of traffic, due to constant increase in their usage, along with the easy access to internet, and other such factors. Thus, it becomes the necessity, to perform load testing, over mobile application, so as to readily face the burden of the enormously increasing traffic, without going in the breakdown state.

LoadStorm PRO, is one of the effective tool, used to perform load testing on mobile apps, espescially, for those, having interaction with the application server, through REST or SOAP API Calls. It simulates the traffic environment, by making use of HTTP Archieve recording(HAR).

Advantages of Load Testing:

  • Reduce risk of downtime.
  • Find performance bottlenecks.
  • Reduce costs of failure.
  • Optimize hardware and software costs through accurate capacity metrics.
  • Support continuous process improvement by supporting performance tuning.
  • Increase customer satisfaction
  • Provide tangible statistics to developers
  • Create system benchmarks useful throughout SDLC
  • Improve scalability of the app.

List of Load testing tools:

Most of the time, load testing is performed with the help of automated tools. Various tools are readily available in the market, for carrying out process of load testing, such as

  • HP LoadRunner
  • WebLOAD
  • Testing Anywhere
  • BlazeMeter
  • Rational Performance Tester
  • Apache JMeter
  • CloudTest
  • LoadUI
  • Gatling
  • OpenSTA
In nutshell, it can be inferred that, load testing may proves to be an effective approach, to meet the testing needs of the companies, especially for those engaged in e-commerce business, to ensure the unaffected working of their website, on account of continuous increase in load on these websites.