| Load, Stress and Scalability Testing of Web Servers with TestComplete |
|
| Load, stress and scalability testing is an essential part of the entire development and testing process of Web servers. |
|
| Load testing consists of simulating real-life workload conditions for the application under test. It helps you determine various characteristics of the application working under massive workload. You can perform your test several times with a different number of users working concurrently to find out how various parts of the application react to the increasing load. TestComplete provides the concept of Virtual Users for these tests. |
|
| Stress testing is aimed at determining the load (for example, the number of user requests) that causes a crash or an unacceptable performance of the application under test. |
|
| The purpose of scalability testing is to determine whether your application scales for the workload growth. Suppose your company expects a six-fold load increase on your server in the next two months. You may need to increase the server performance and to shorten the request processing time to better serve visitors. If your application is scalable, you can shorten this time by upgrading the server hardware, for example, you can increase the CPU frequency and add more RAM (also, you can increase the request performance by changing the server software, for example, by replacing the text-file data storages with SQL Server databases. To find a better solution, first you can test hardware changes, then software changes and after that compare the results of the tests). |
|
| If the scalability tests report that the application is not scalable, this means there is a bottleneck somewhere within the application. To find it quickly, you can analyze your server application with special utilities, such as AQtime. |
|
| Scalability testing can be performed as a series of load tests with different hardware or software configurations keeping other settings of testing environment unchanged. When performing scalability testing, you can vary such variables as the CPU frequency, number and type of servers, amount of available RAM, etc. |
|
| To achieve the goals of load, stress and scalability testing, you need to simulate a massive load in the Web application under test. You can do this by using a special testing tool, like TestComplete, that can simulate the workload of thousands of users. To emulate real-life conditions, TestComplete can unite "users" into groups and support concurrent simulation of user requests on several computers in your network. |
|
| To perform load, stress and scalability testing of Web servers, TestComplete uses the HTTP Load Testing plug-in (LoadTesting.pls). The plug-in is part of the TestComplete Enterprise Edition. It records requests that are sent from the client computer(s) to the server via the HTTP or HTTPS protocol and uses the recorded data to simulate user actions, as if hundreds of users are working simultaneously. |
|
| Using TestComplete with the HTTP Load Testing plug-in, you can easily find answers to the following questions: |
|
| How does the server's response time change if you increase or decrease the number of users? |
|
| How many users can simultaneously work with the Web server without a perceptible slowdown? |
|
| What load can crash the server application? |
|
| How do hardware and software changes affect the server performance? |
|
| Etc. |
|
| The plug-in works as a proxy server in order to track HTTP requests. All the computers that participate in recording must use the TestComplete machine as a proxy server. |
|
| TestComplete records all the requests sent to the tested Web server regardless of which Internet browser the tester uses (Internet Explorer, Netscape Navigator, Mozilla or Opera), Web server type (Internet Information Server, Apache, etc.) and platform (Windows, Linux, etc.) |
|
| The HTTP Load Testing plug-in uses system services and functions that are available in Windows NT 4.0 with SP 3 or later, Windows 2000, Windows XP or Windows Server 2003. That is why if you are going to use the plug-in, you should install TestComplete on one of these operating systems. |
|
| TestComplete can simulate several dozens of virtual users to simulate user activity in your Web server application (the number of available virtual users is determined by your TestComplete license) You can create these users via scripts in your test project, assign tasks to the users (tasks are collections of recorded HTTP requests), collect the users within groups and then run the virtual user groups. The result is like getting a bunch of human testers together to hammer your Web server. TestComplete tracks all the actions taken by your host of virtual users as well as the server responses and creates in-depth reports about the results. |
|
| To simulate real-world conditions, you can simulate virtual users on other network computers. To do this, you can install TestComplete, TestExecute or the HTTP Load Testing Remote Agent on these computers. The Remote Agent is part of TestComplete Enterprise versions that includes 250 or more virtual users. The Remote Agent allows you to create virtual users on computers which TestComplete is not installed. TestComplete installed on the testing machine will detect the Remote Agent running on other network computers and will allow you to manage virtual users and their groups there.
|
|