Load testing is a method for checking the stability of an ap­pli­ca­tion by using simulated loads to test its limits. There are numerous free and paid load testing tools available on the market.

What is a load test?

A load test is used to test the load capacity of a system. These tests can be performed on software during the pre-release phase as well as after a system has already been released for com­mer­cial use.

The aim of load testing is to find out how much a system can achieve before per­for­mance drops sig­nif­i­cant­ly enough to affect the func­tion­al­i­ty of the service. To do this, high-demand loads are simulated, even­tu­al­ly pushing the system to its limits. This can be done by sim­u­lat­ing numerous si­mul­ta­ne­ous access attempts, or through the rep­e­ti­tion of certain actions in rapid suc­ces­sion. The system then responds to these chal­lenges in the best possible way. During load tests, if an overload occurs, the system is not damaged.

What is the goal of load testing?

Load tests can be used in various ways. In agile software de­vel­op­ment, for example, load tests are used as a quality assurance measure. Before a new software is launched, checks are carried out to better un­der­stand what re­quire­ments the program can handle and determine when it no longer is able to function ef­fi­cient­ly. Errors that were pre­vi­ous­ly over­looked can also be pin­point­ed Checks are also carried out to see how a system handles un­ex­pect­ed ad­di­tion­al loads, at what point lim­i­ta­tions occur, and how fast the reaction time to errors is.

Existing systems can also be checked using load tests. These tests are commonly used to check the per­for­mance of websites. If operators are expecting a large and un­sched­uled rush, they can simulate the upcoming overload to ensure that their own system can handle the extra load. A larger rush can occur when a new product is launched, a special event is coming up, or ad­ver­tis­ing campaigns are carried out to generate more website traffic. The goal of load testing is to check the re­silience of a system and its response, so that you can improve per­for­mance in advance if necessary.

Which load tests are there?

Not all load tests are the same. There are different ap­proach­es designed for different purposes. The dis­tinc­tions are not entirely clear-cut, and the products of some vendors enable different types of load tests. Roughly, however, there are four different groups: per­for­mance, capacity, stress and endurance.

The per­for­mance test

The per­for­mance test is con­sid­ered the classic load test and is the simplest form of these test options. The demands placed on a system are com­par­a­tive­ly low. The results show whether a new or existing system can withstand expected loads, and whether the quality of the per­for­mance remains con­sis­tent during this time. This type of load test is suitable, for example, for web apps, which must be able to handle a specific volume of si­mul­ta­ne­ous access requests. The load test simulates these access requests and checks whether the response times meet ex­pec­ta­tions.

The capacity test

This type of load test goes a step further. Instead of asking “Can my system do what it is supposed to?” the question here is, “What can my system actually do?” Instead of sim­u­lat­ing a rush, the load is increased in­cre­men­tal­ly. To do this, the exact re­quire­ments that the system should fulfill must be de­ter­mined in advance. For example, the expected system response time should be de­ter­mined before tests are carried out. Once this is es­tab­lished, the load test begins, gradually setting higher re­quire­ments. This continues until the system reaches its limits.

The stress test

The next step up is the stress test. This approach picks up where the capacity test left off. While capacity tests assess how far you can scale a system and then stop at the maximum value, stress tests are designed to in­ten­tion­al­ly exceed the maximum value. It is not about how much the system can do, but rather how it reacts when it is over­loaded. In this load test, you present the system with an un­solv­able task and then measure response times. You can also see when the system crashes and how it crashes. Running stress tests helps you prepare for such sit­u­a­tions should they occur.

The endurance load test

The load tests presented so far are each designed for short periods of time. These pro­ce­dures do not provide any in­for­ma­tion on whether the system can withstand high loads over a longer period of time. This is where endurance load tests can be of help. The test is carried out for several hours, or even days, and de­ter­mines whether the system remains stable when in con­tin­u­ous operation. It also shines a light on which resources are being consumed and whether un­ex­pect­ed errors occur. As most systems are designed to always be available, endurance tests are important for de­ter­min­ing the general re­li­a­bil­i­ty and response time of a system.

What should be done before a load test?

Load tests are a good way to test a system, assess potential risks in advance, and possibly improve it. However, it’s important to consider a few things before con­duct­ing a load test.

Define ex­pec­ta­tions

The first question you should ask yourself is what you want to achieve with the load test. Consider your goals and the questions that the test should answer. Is it a final test before launching? Do you want to check what your system can actually do? Do you want to overload the program to prepare for the worst-case scenario? Or are you primarily concerned with the system’s per­for­mance over a longer period? Depending on your re­quire­ments, you will need a different load test.

Once you are clear about your basic goals, you should define them. What response time do you want to achieve? What should your system be able to do? What values are ac­cept­able and at what point do you need to improve per­for­mance? What maximum loads can you expect? If you answer these questions before per­form­ing the load test, you will be able to generate much more in­sight­ful results.

Determine the schedule

Before con­duct­ing a load test, you should consider at what point in the de­vel­op­ment this test makes sense. If you do it too early, the load test may not produce mean­ing­ful results. However, if you perform it too late, changes based upon the results may not be able to be in­cor­po­rat­ed into the system. If you are working with an existing system, you should consider when the load test will have the least negative impact on your business op­er­a­tions. Choosing the right time is important, es­pe­cial­ly if you are con­duct­ing a con­tin­u­ous load test.

Determine effort

Costs differ sig­nif­i­cant­ly between different load testing tools. There are open-source solutions, but a load testing software with a pricing plan is a good option if you intend to run load tests on a recurring basis. You should determine how much you want to invest in a load test. When de­ter­min­ing effort, it’s also important to know how close the test en­vi­ron­ment is to the pro­duc­tion en­vi­ron­ment. If you want to use multiple load tests, you need to co­or­di­nate them and develop a plan for eval­u­at­ing the test data in advance.

How is a load test performed?

When carrying out a load test, safety should be a top priority. The system should be protected and supported in the best way possible. The following ap­proach­es are rec­om­mend­ed for this purpose:

  • Safety pre­cau­tions: Before starting the load test, create a backup of all the system’s data. If problems occur, you can then quickly switch back to the previous state. Also, check which external systems are connected and make sure that they cannot be affected by the load test.
  • Proceed step by step: Even if you want to test your system on a large scale, it is better to start small. It is worth de­ter­min­ing what your system can do in theory before you start.
  • The right software solution: The choice of a suitable software solution also plays a major role. A load test that is tailored to your re­quire­ments will provide you with mean­ing­ful results, allowing you to gain valuable insights.

What tools are available for load testing?

There are numerous tools that spe­cial­ize in load testing that can provide you with valuable services when checking your system. The following programs are great options for con­duct­ing load tests:

JMeter

JMeter is an open-source solution and scores points with its large and helpful community. With JMeter, you can perform load tests for numerous ap­pli­ca­tions and servers as well as create simple reports. One dis­ad­van­tage of this solution is its learning curve. However, if you are willing to take the time to learn the program, it is an excellent al­ter­na­tive to costly load testing.

IBM Rational Per­for­mance Tester

The IBM Rational Per­for­mance Tester is a strong contender for per­for­mance and capacity testing. It also lets you write test scripts in Java, generate sta­tis­tics, and check your cloud. The load test is com­par­a­tive­ly easy to perform and does not require extensive training. In addition to the free trial version, there are several pricing plans.

Load­Run­ner

Load­Run­ner is a classic in the field of load testing. The program supports numerous tech­nolo­gies and is available as a free community version and a paid version. Load­Run­ner is easy to use and offers a host of pos­si­bil­i­ties for per­form­ing load tests that can be adapted to your needs.

Go to Main Menu