Chapter 8. Load Testing

Performance testing was only half the story! In fact, it was the preparation for studying the application response under user load, which was exactly how you felt during the testing team's meeting. The numbers that were constantly used in the interchanged discussions had their impact.

How will the application perform with hundreds of thousands of users? How will the application perform when consolidating millions of user records? How will the application continue to be reliable without damaging thousands of user benefits and safety? How will the application support and ensure the company's profit?

So, how will Test Studio help you respond to the technical concerns lying behind these questions? This chapter walks you through a step-by-step load plan executed against a web application. It exhibits the following features inside Test Studio:

  • Configuring Test Studio for load testing
  • Designing and creating load tests
  • Tuning and running load tests
  • Measuring default performance metrics
  • Viewing and analyzing test results

Load testing

There are some scenarios that you face when operating on an application that lacks efficiency. These scenarios can be one or many of the following:

  • You decide you are better off without the application service than waiting the amount of time it requires
  • You feel your machine is lingering to keep the application running
  • You start receiving inaccurate responses after having used the application for so long
  • Out-of-memory exceptions start popping up on the screen

Efficiency is a nonfunctional attribute that characterizes the system. It is demonstrated by the latter's consumption for time and resources when subjected to an increasing load. Therefore, an efficient system is one that provides responses while abiding by the predefined limits for time and resource usage.

Testing efficiency is not achieved by applying an arbitrary simultaneous weight of users over the system; neither is it confined to varying their numbers. Actually, lots of other factors play a role in many variations of efficiency testing. Among these variations, we will see load testing.

Load testing is a type of nonfunctional testing that studies application performance against a preplanned increasing load of users and their typical activities. It is done to measure the response time and throughput, while parallel operating users are injected to perform on system resources that are designed to be as close as possible to real-life specifications.

Other types of nonfunctional performance testing are listed as follows:

  • Stress testing: This is load testing taken to the next level. As briefly mentioned, load testing operates the system under the anticipated user and resource specifications that are going to take place in real life after product release. Stress testing is when it pushes these variables beyond their specified limits; for example, by minimizing available resources. The system is expected to not respond at some point, since the limits were already drawn; however, what matters is the slope with which the system degrades to reach this point. Does this mean that it will cause the system to hang or gracefully fail under high load? Will it recover data after being restarted?
  • Scalability testing: In this type of testing, the system's current behavior is studied to assess its capability to accommodate increasing demands. During this type of testing, the components that should be targeted to allow more load in the future are highlighted. Generally, these components are the ones that were identified as bottlenecks.
  • Soak testing: As the name suggests, this is a rough plan to soak the system. It is achieved by running the system constantly for long durations. Generally, problems in allocating and clearing memory are uncovered.
  • Spike testing: In this type of testing, we observe the system behavior against a full-blown usage scenario. Usually, we expect system usage to grow gradually, but in some real-life cases, access to the system is requested spontaneously by a great number of users; for example, after server restart.

Other performance testing types also exist. This chapter demonstrates the usage of Test Studio in order to implement load-testing plans. However, notice that with some adjustments to this plan and to the test execution settings, other nonfunctional performance testing types can be performed.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.143.255.36