Introduction to load tests
Load tests for the Thinkwise platform are easiest when using Universal GUI. Load tests for Windows or Web GUI's require a lot more manual adaptation. This manual describes the load tests for Universal GUI.
This chapter explains how to perform a load test on your upcoming web environment.
A load test simulates the use of your web environment by a group of users. It checks how the web environment will react with a certain amount of users, performing certain tasks. The test uses recorded scripts, with much-used actions as taken by an end-user. By running these scripts no real-life testers are needed, since the load test sends requests to the web application, similar to how the user's browser normally would.
Goals of a load test:
- To simulate the intended number of users on the web environment.
- To simulate the maximum possible number of users on the web environment with the current resources. This allows statements to be made about possible growth.
- To simulate increasing use of the web environment. The load is increased step by step, while performance and response times are measured.
Load tests cannot give a 100% guarantee for a live environment, but they do give a good idea of the expected lifetime of your web environment and the expected performance under different loads.
When to perform a load test
A load test should be performed for all your web applications. This way, possible problems can be solved before going live with your application.
Thinkwise recommends starting load testing early in your project:
- Azure: the absolute minimum is 3 weeks before going live, but preferable earlier. Azure's infrastructure is easily scalable, but sometimes code changes are necessary to solve performance problems. Keep in mind that code changes can take time, and that the load tests need to be run again.
- On premise: start as soon as possible. You can start early in your project with testing the infrastructure (also a firewall, for example, can be a limiting factor). At a later stage, your web application can be tested in more detail. Keep in mind that updating infrastructure and code changes take time, and that the load tests need to be run again.
Quick reference guide to load tests
For each web application, the following steps must be followed:
|1. Make a planning.|
|2. Assign roles and persons to every step of the load test.|
|3. Prepare the load test script - Answer all questions carefully and discuss the result with Thinkwise.|
|4. Record the scripts.|
|5. Perform the load test.|
|6. Create the test report|
|7. Draw your conclusions and discuss them with Thinkwise.|
When starting a load test project, the division of roles should be clearly defined. Thinkwise recommends the following roles:
|Fill in the test plan||Customer (management + development)|
|Process and review the test plan||Thinkwise|
|Monitor the test||Customer (management)|
|Set up the load test script||Customer + Thinkwise|
|Perform the load test||Customer + Thinkwise|
|Prepare the test report||Customer|
|Record the conclusions of the test report||Customer + Thinkwise|
Which individuals are involved in this load testing process?
Preparation for a load test script
This chapter contains a questionnaire with questions and suggestions that are important for designing and implementing a load test. The completed questionnaire serves as the basis for a load test script. This script can be run in different ways to simulate the use of the web application in a production environment.
If the test plan for a load test does not reflect the real-life situation, the results and conclusions will not reliable. Always discuss this plan with your Thinkwise representative, before starting the load test.
Answer the following questions to create the basis for a load test script:
- How many users will use this application?
- How often will users use this web application? For example, several times a day, daily or weekly.
- Are there times when increased activity is expected? For example, a deadline for which data must be entered.
- How many users will be active in the web application at the same time?
The scripts for the load test must be based on real user behavior at the same degree of occurrence.
What screens and details are commonly used? Put them in order, from most used to least used. Give each screen and detail its own number.
Several actions can take place within a screen or detail. For each screen or detail from the list above, indicate which of the following actions are used:
- action ...
|Search||Run task||Add||Execute process flow|
|Filter||Open report||Modify||Own input|
For each action in the list above, indicate the frequency with which these actions are performed. For example:
If a heavy action for the database is performed less frequently, then add this, too. For example:
Perform task Calculate sales (1x per month).
Are there groups of users with their own rights and data views? If so, which ones, and what are the properties of these groups? For each group, a user account must be created for running the load test.
There are two options to test groups:
If the visible screens to be tested are not available to all groups, create different load test scripts for each group.
When the screens are the same, the same script can be used for different users, each representing a group.
Which option is preferred and why?
Which user account represents which group of users?
3 Growth Rate
You have now mapped out the expected use and behavior of the current situation. To assess whether the web environment in which your Thinkwise web application runs will last for several years, you should also perform a load test for the expected growth. With this test, the boundaries of your web environment can be explored. It will indicate how many years you can continue with the current web environment and when new hardware will be needed. When the boundaries are approached, intervening in time will prevent failure.
- What is the expected growth in the number of users of the web application per year?
- What is the expected growth of data in the database per year?
- How many years do you want to look ahead with this test?
When performing a load test, it may become apparent that a web environment component cannot handle the requests. This can result in decreasing performance or even downtime. Parts of the web environment that are loaded are:
- Network (throughput).
- Databases (throughput and resource usage).
- Web server (processor and memory usage).
- When can the environment in which the load test is performed not be burdened with a load test?
- Who and what is needed to make a failed component available again?
- What factors should be measured across the components of the web environment? For example, the used memory of the webserver.
- What data may or may not be changed during a load test?
During a load test, it is recommended to monitor what is happening to the different web environment components.
Use the topics from the previous section (Availability) to determine the monitoring tools you wish to use. Some of these tools can remain active in a production environment to support administrators and provide timely alerts in case of emergencies.
- Are there any monitoring tools available to adequately visualize these components? If so, which ones and what do they monitor?
- What components cannot yet be monitored with your current tools?
- What alerts can be set up within the tool to notify administrators in time of outages or declining performance? For example: when approaching the maximum allocated memory for the webserver.
- How will the measured results be recorded? During and after performing a load test, it is useful to record the measured results. This way, the results can be compared to other tests or read back at a later time. It also allows different tests to be analyzed to formulate conclusions, for example, about the lifespan of the current web environment at equal growth.
- Where can the conclusions be formulated, and in what form?
What are important expectations/pre-conditions for your web application? For example:
The average response time of an action should not exceed 5 seconds with 20 logged-in users.
Thinkwise advises to run the load tests with JMeter scripts. Record these scripts with, for example:
The script is set up by clicking through the web application in the browser just as an end-user would. All actions performed to the web server are recorded by the load test tool.
Perform the load test
Import the scripts in a load test tool and run the tests. Use, for example, one of these tools:
Check the sites for pricing and instructions.
A script can be executed multiple times on the web environment.
Create the test report
Combine all test results into a test report.
Draw conclusions from the test report and discuss them with your Thinkwise representative.