Suppose you are suddenly tasked with the responsibility to prove application performance through load testing. You have never done this before. Where would you begin? In this article, we will discuss how to approach the planning, selection of tools, and architecture through the typical phases of load testing.
Defining Capacity Metrics
First, you would have some homework to do. Based on testing goals, there are a number of key performance metrics that should be defined. It would be helpful to define following information:
- Normal load – average number of users under normal conditions
- Peak load – the maximum number of users under surge conditions
Selecting Load Testing Tools
There are several load testing tools that can be used to actualize our load test, each with its own set of pros and cons. Some of the most commonly used tools include:
- Apache JMeter – One of the most popular open source load testing frameworks. JMeter enjoys a large user base and an excellent community of support. Test plans in JMeter are typically built using a GUI for major features and many times little or no code.
- k6 and Gatling – Designed as a code-first frameworks, k6 and Gatling are two different tools that enable developers to write load tests that are defined in terms of classes and functions in a Java-like or other similar language.
Stepwise Phases of Load Testing
Load tests are typically performed in phases, with each successive phase ramping up in capacity. If it is part of the testing goals to determine the maximum capacity of a system, this includes testing the application to the point of failure. In general terms, we can define phases of testing as follows:
- Proof of Concept – During this phase, the test itself is vetted to ensure that it works. Testing logic is debugged, and experiments are performed which ensure that the approaches to achieve our testing goals are feasible and sound.
- Benchmark – Load tests are ramped up in capacity to meet the normal load of the application. This is one of the key performance metrics referenced in the previous section above.
- Max Load – Capacity is further scaled up to meet peak load conditions. As also referenced above, this is the maximum number of users expected under surge conditions.
- Point of Failure – As we continue to increase capacity even higher – and sometimes exponentially – we will eventually reach an endpoint where the target test application no longer delivers an expected output.
Scaling Performance in the Cloud
During the initial phases of testing, load tests are typically run on a local machine. Test development typically follows an iterative process during the proof of concept phase, with rapid revisions lending well to a local development environment. Once the test design has solidified and it is time to run with scale, in many cases it makes sense to move to a cloud-based load testing provider. Using a cloud-based provider such as RedLine13, the mechanics of coordinating ever-increasing load tests at scale are abstracted. We can simply upload our test and specify a few metrics to define scale and the rest will be handled automatically, including data collection.
Did you know that RedLine13 offers a full-featured, time-limited free trial? Sign up now, and run your first load test in the cloud with RedLine13 today!