Load and performance testing is just like many other types of testing (beta testing, functional, acceptance, regression, unit testing, integration testing) but like them it also has a specific goal. That goal is that a system or service can run when under a specific load. Unlike other types of testing this is not intended to uncover bugs but to ensure that the system continues to run when it encounters the expected number of users or amount of data.
Load testing is not the only type of testing of this type. There is also stress testing which verifies that the system continues to run when encountering unexpected workloads. Volume testing covers situations testing larger or expanding amounts of data. Performance testing is another related type of testing. Performance testing is perhaps less well defined but usually refers to expected amount of time that is expected for performing a specific act or acts. Stability testing would be that the given system or service can continue to function over a longer period of time. This type of testing might also be done in conjunction with load testing to verify that a system can perform over time with a specific amount of traffic. Unsurprisingly these terms are sometimes used interchangeably.
The number of tools available for load testing is not quite as many as the leaves on the trees but it is safe to say that there are quite a few different tools which can help automate this process. Even the goal of load testing can be split up into testing a the GUI, perhaps web applications, or testing the services and hardware behind the GUI. I am going to be focusing on the backend which is to say the servers and services.
- JMeter
- Gatling
- LoadRunner
These tools do not cover the entire market for this type of testing but they are both fairly well represented and have been around for a long enough time that there is both a fair amount of other support information available on the internet and the concern that any of these tools will fade away seems unlikely.
Over the next few articles I will be covering to a greater or lessor amount the following testing tools.