We've added some new features to the TestComplete 8 load testing subsystem that allow you to define expected response codes for requests and create compound (or complex) load testing tasks that consist of other tasks.
Load Testing - Custom Response Codes
When a web server responds to an HTTP request, it sends code that indicates the response type. Earlier versions of TestComplete considered the request as successful only when the server returned the “200 – OK” and “302 – Found” response codes. Any other codes were not used, and the corresponding requests were reported as unsuccessful. This algorithm worked well for most cases.
However, a tested server may respond in a more sophisticated manner and return other status codes. For instance it can redirect to another URL (“301 - Moved Permanently” or “307 - Temporary Redirect”). According to the above-mentioned logic, the request will be reported as failed even if the page was actually displayed.
Now, with TestComplete 8, you can control which response codes are acceptable for individual HTTP requests by using a new Custom Log Criteria table in the Task Editor. You can specify the possible response codes for all requests.
TestComplete then compares the actual response codes with these values and decides whether the request is simulated successfully or not. Specifying a custom reaction on requests makes your load testing more flexible and eliminates false triggering while processing the load testing results.
Load Testing - Complex Load Testing Tasks
Some TestComplete users have asked us to implement the ability for virtual users to run multiple HTTP tasks per test, or repeat the same task several times. These user requests were implemented in TestComplete 8.
With this in mind, we created a new type of load testing task called – complex tasks. Here, the word “complex” means “compound”, not “complicated”. A complex task combines several sub-tasks, and the sub-tasks can be either HTTP tasks (those containing HTTP or HTTPS traffic) or complex tasks. TestComplete executes sub-tasks sequentially, repeating each task the number of times that you specify in the editor.
Assigning several tasks to the same virtual user or user group is an effective way to achieve the following goals:
- Intensify server load - In most cases, tasks have a different execution time. When a load test containing several tasks is launched in a loop, the following situation takes place: some of the users complete their tasks faster than others and they remain idle unless the entire load test is re-launched. As a result, the load on the server decreases. The ability to specify the number of task repetitions (rather than the number of load test repetitions) allows you to load the server more evenly.
- Improve task re-usability - Instead of recording sophisticated tasks, you can record a number of sub-tasks and execute them sequentially. This will allow you to combine task segments and improve task re-usability for load testing, since you will be able to use HTTP tasks without having to duplicate all of the requests.
We hope these new features will help you create more flexible and powerful load tests. You can use these new features in the TestComplete 8 Beta so if you haven't joined the beta testing yet, apply for the beta today.