Load Testing

What is Load Testing?

Load testing is one of the type of performance testing using which we evaluate the performance of an application under expected real-world load.
Virtual users are created to simulate the load of multiple concurrent users accessing the application. After subjecting application to the virtual user load, we eventually measure the different performance attributes along with identifying performance bottlenecks.
The virtual user creation is performed by tools like - JMeter and LoadRunner. These performance testing tools allow us to create scripts which makes different requests to server(just like a real-world user), along with various configurations like number of threads or virtual users, duration of load test, performance attributes & graphs that we want to analyze etc. After the script creation and setting up of test configuration, we can run the load test and analyze the test results.

Advantages Load Testing

  • Load testing helps in identification of performance bottlenecks before production deployment.
  • It helps in configuring the most optimal infrastructure for the setup. Infrastructure cost can be saved by terminating extra machines. Also, additional machine can be added in case of suboptimal infrastructure.
  • It minimizes the risk of down-time by identifying and isolating the requests whose performance needs to be improved.
  • It provides a sense of confidence and reliability on the application's performance.

Disadvantages Load Testing

  • Many of the load testing tools are licensed and charge good amount of money for the license.
  • Even in case of free and open source tools like JMeter, a load testing environment is required which should be as close to the production environment setup as possible. This again leads to additional resource and cost.
  • Load test script creation requires scripting knowledge of the language supported by the tool.
  • Incorrectly configured or scripted load test plan/script can lead to false performance issues which takes considerable amount of time and resource.

Performance testing and Load Testing - Are they same?

Load testing is actually a subset of performance testing that focuses on analyzing the behavior of web application under a particular load, for a predefined amount time. Whereas, performance testing is a broader term that includes checking different aspects of system like application's state at workload higher than expected(stress testing); performance of application with large volume of data(volume testing); ability of system to sustain normal workload for a large duration of time(endurance) etc.

You can learn about different performance testing concepts and script creation from our Apache JMeter tutorial.