Load Testing in Software Testing

What is Load Testing?

The definition of load testing generally refers to testing as a subset of the software performance testing process, which typically also includes several other types of tests, such as stress testing, soak testing, spike testing, endurance testing, volume testing, and scalability testing, among other types of testing.

Poor performing sites and applications can have a negative impact on conversions, transactions, and most importantly, revenue.  Even a few seconds of downtime can significantly impact a company’s bottom line. A 2017 survey conducted by ITIC found that a single hour of downtime cost large organizations over $100,000 per year.

If you consider specific industries that depend on high-volume transactions, like financial services or large online retailers, the impact is likely more significant and exceed millions of dollars per hour.

How load testing works

A load test can be done with end-to-end IT systems or smaller components like database servers or firewalls. It measures the speed or capacity of the system or component through transaction response time.

When the system components dramatically extend response times or become unstable, the system is likely to have reached its maximum operating capacity. When this happens, the bottlenecks should be identified and solutions provided.

Process of Load Testing

  • Once the load test is planned, load testing begins. It starts with RECORDING USER SCENARIOS in which different scenarios of the application are noted. The scenarios are recorded in the load test script. E.g. User browsing pages.
  • The load test script prepared needs to be PARAMETERIZED to allow different inputs to the server. This is done by first identifying the list of values to be parameterized. A different set of values can then be passed to the server. E.g. different user names and passwords for login.
  • The user scenarios after recording need to be GROUP as user profiles to map real-time user activities. The % of the workload for each user scenario needs to be found as well. The grouping is done based on the activities few users may perform on the application. E.g. test users.
  • The applications RESPONSE TO LOAD needs to be determined. This will help in determining the performance of the system.
  • The LOAD TEST CASES are then prepared. The test cases associate the user profiles with workloads.
  • The test cases prepared are then EXECUTED. This can be done by clicking on the PLAY option.
  • The results of the test cases are then ANALYZED. The reports and graphs page displayed is used for this purpose.

Key Aspects of Load testing

During the process of execution, load testing is generally focused on the following features of the software product:

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

Load Testing Tools

The following list of load testing tools:

  • Apache JMeter
  • Artillery.io
  • LoadUI
  • LoadStorm
  • LoadImpact
  • LoadRunner
  • Httperf

Advantages of Load Testing

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

Disadvantages of Load Testing

  • Many of the load testing tools are licensed and charge a 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 resources and costs.
  • 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 take a considerable amount of time and resource.