Load testing is an important subset of any overall performance management strategy. It is a technical investigation done to determine the scalability, speed, and/or stability characteristics of the system under test. Load testing is crucial for assessing whether or not the software solution, including the server equipment on which the solution runs, the infrastructure network where the servers exist, and the Web access routes and equipment, will react with the necessary speed when subjected to normal or higher than normal amounts of user traffic.
How comfortable are you that your system and its individual components are certified against peak loads, and times of stress on the network? How “ready” are you for your next peak interval?
In its infancy, load testing entailed events where multiple people accessed an application simultaneously from distributed computers. While this may successfully simulate a stressful event on a system, it lacks the qualities that are crucial to a true evaluation of a system under load. Through load test automation using tools like LoadUIWeb Pro, we can create and control populations of virtual users that can simulate valuable aspects of load testing:
To fully test an application, merely accessing the landing page of a website is not going to give an adequate assessment of how well the supporting pages of that site are performing. A better test is to simulate a virtual population running a transaction comprised of a series of steps, each of these steps possibly consisting of multiple requests and responses to both your host server as well as third-party sources, should be able to be performed by the virtual user population.
Further, as different users to a website may follow differing sets of steps on that site, comprehensive load testing should include running multiple test scenarios concurrently. These can be further varied by using multiple browser styles, transmission bandwidths, individual session IDs, and other variations to the test parameters to most closely simulate a ‘real world experience.’
For a website that is meant to be accessed from outside of the firewall, testing that only occurs on the internal infrastructure will overlook some important possible bottlenecks, such as single sign-on mechanisms or other security devices. Even a singular perspective inside of the firewall, such as initiating all virtual users from just one location, will show a more myopic result than testing done from multiple separate locations in the network. It is therefore important to be able to place remote instances of your virtual user population, but be able to configure, control and correlate data from them with one central management console.
Endurance testing is an assessment lasting many hours or days, and is a way of testing the durability of the solution and its components. These exercises can reveal the occurrence of memory leaks or similar system degradations on the host servers over time. Here, the ability to draw server-side metrics into the test results can be greatly beneficial to the assessment of the system’s durability in the production environment.
Testing in this phase entails pushing the website and its infrastructure well past its normal anticipated loads, as a way to assess the upper limit of system capability, finding the theoretical capacity for a solution. This type of testing should be used to not simply “knock over” the service, but to look at the elasticity of the solution, and determine if it can recover from being pushed past infrequent stressful loads. In addition to finding that upper limit of performance, stress testing can also be useful for right-sizing your system, and being able to justify future build-out plans and timeframes.
Load testing is vital to your performance management planning. Having the answers from these kinds of tests allow the tester to really ’feel’ the capabilities of their infrastructure, and more importantly, to instinctively recognize the signs of a website undergoing a stressful incident and make intelligent decisions.