Rational Performance Tester
What is Rational Performance Tester?
IBM Rational Performance Tester (RPT) is a performance test tool which measures the performance of an IT system by generating load on it and measuring the response times of the system under load. RPT generates load by simulating the actions on the system of multiple simultaneous users. The main measures of performance are transaction response times and throughput. Transaction response time is the time taken by the system to respond to a user action, such as navigating from one page to another in a web application. Throughput is the number of transactions (such as a navigation) the system can perform in a given time. RPT is one of the tools our software lifecycle experts use to automate the whole software lifecycle.
What Rational Performance Tester does
RPT generates load on a system by simulating the actions of multiple simultaneous users. Each user is simulated by a thread running a simple program called a script. In RPT, scripts are created by recording the user actions which are to be tested. At the end of the recording, the script is generated automatically. Unlike other load test tools (including HP LoadRunner) an RPT script is not shown as a block of code, but as a sequence of graphical symbols. The script can then be run by multiple threads to simulate the actions of multiple users.
While the load is being applied, RPT measures the time taken by the system to respond to user commands. The commands to be measured are designated in the script. While a test is running, RPT also measures throughput and metrics of the servers of the system under test, such as CPU utilisation, memory utilisation and disk I/O. To generate high levels of load, RPT can make use of multiple machines to run simulated users (load generators or load injectors).
More than one script may be run simultaneously during a test. For example, in a test involving 1000 simulated users, 500 users could run script A, 300 users could run script B and 200 users could run script C. The three scripts would each simulate different user activities on the system and the proportions of each script run by simulated users would be designed to reflect usage volumes observed of real users on the system.
As the load on a system is increased, the response times typically increase (i.e. the system becomes slower from the perspective of a user) and the total throughput reaches a peak. RPT can measure the level of load at which the response times reach an unacceptably high level.
The main benefits of Rational Performance Tester are as follows.
- Adequate performance is an important part of the usability of an IT system. If a system is too slow, user productivity can suffer, and if the system is customer-facing, users may switch to competing systems. In either case there is a direct adverse financial effect on the system owner. RPT helps to prevent this.
- Certain defects only appear under load, for example memory leaks. A memory leak occurs if memory is allocated in a program but not all is released when no longer required. Under load, the system will gradually run out of memory and fail. RPT can help detect and resolve memory leaks.
- Other system resources, such as database connections, can also be exhausted and similarly cause the system to fail. Memory leaks and other problems of resource exhaustion often appear during soak tests (also known as stability tests). A soak test is a performance test carried out over an extended period, typically ranging from a few hours to a few days.
- Performance testing is useful for future capacity planning. Even if the system performs adequately at the expected levels of load, it can be useful to know at what level of load the system will eventually fail, so that plan can be made to increase its capacity as usage grows. This is determined in a stress test, a test in which the load is gradually increased until the system fails.
Rational Performance Tester includes the following features:
- RPT is implemented in Eclipse, IBM’s highly extensible integrated development environment.
- In common with most other performance test tools, RPT works by recording the network traffic between the client and the server, and replaying this traffic in multiple simultaneous threads during a test.
- RPT is used primarily on web based systems (whether internet or intranet), and also covers other protocols such as Sockets, and IBM 3270. RPT also allows users with the requisite skills to develop their own plugins to test other protocols.
- RPT is particularly strong at correlation. Correlation is the process of identifying and storing variables sent out by the server, such as session IDs, and reusing them later in the test. Failure to correlate causes scripts to fail through invalid session IDs or similar errors. In RPT the tester needs to do very little manual correlation. In many tests, no manual correlation is required.
- Scripts are represented as a sequence of graphical objects (shown in the screenshot), each representing a step of the script. User modifications are performed by changing the properties of the relevant object. This is adequate for most situations, but where more complex processing is needed, it is possible to write a code module and invoke it from an object in the script. These code modules are written in Java.