Planning a performance test is the most important part of performance testing. Let's take a deeper look at it. The very first thing in planning a performance test is analysis:
The following phases of tests will be executed as part of this performance testing effort:
Let's have a look at the various types of performance test types:
The test execution phase will follow a streamlined process; the main aim of the process is to review, assess and execute tests in a formal and structured way during the entire duration of the execution phase.
Test execution will only commence when all the entry criteria for a cycle have been met, and will only end when all the exit criteria have been fulfilled and reviewed and mitigating actions for key risks/issues agreed.
To ensure quality and effectiveness throughout the performance testing program and the integrity of testing it is vital that quality gates are established between phases and that these are formally controlled by the test manager and stakeholders. At the end of each phase of testing, the exit criteria of the phase just completed will be assessed. If these have been fulfilled, then the entry criteria of the succeeding test phase will themselves be assessed in turn before that test phase can be allowed to commence.
The following diagram gives an overview of the quality gates proposed for this testing program:
Test environments: The test environment is very important for knowing whether another user is accessing the application at that point in time. In cases where other users are accessing the application at the same time, the results of the test would not be real.
Based on the peak load number, we might need optimal configuration of the load generation machine or we need to use distributed mode for load generation.
Following are sample of the hardware configuration required (the numbers used are sample numbers).
Considering the preceding calculations, we can generate a user load of 78 concurrent users using a generator with quad core CPU at 2.6 GHz and 4 GB RAM.
Following are the infrastructure requirements:
Test data: Test data is very important in performance testing. We need to gather the test data or generate it using scripts.
The test data should be unique and should be similar to the data that would be set up in production.
Following is the list of deliverables which are usually required by the client:
Dependency: Following is an example of a dependency list:
ID |
Dependency |
Description |
Impact |
---|---|---|---|
1 |
Pre-Production Build Completed |
The pre-production environment should contain a stable and tested build, the emphasis behind this is to minimize any impact on re-work of performance test scripts. |
H |
2 |
Pre-Production Access Provided |
Access to relevant databases, application is provided to Vendor. Resources would be predominantly used to record the necessary test scripts identified for performance testing. |
H |
3 |
Performance Test Tools Deployed/Installed |
All the relevant tools are deployed, installed, and smoke tested. |
H |
4 |
Test Data requirements agreed |
A set of appropriate and valid test data is loaded. |
H |
5 |
Early Visibility of build to Pre-Prod |
Early indication of the build that is expected to be deployed to pre-production. |
M |
6 |
Cycle 1 Test Data Loaded |
Test data loaded and sanity tested prior to commencement of cycle 1 testing. |
H |
7 |
Drop X Deployed to Pre-Prod |
Deployed build successfully completed in pre-production environment, sanity tested and meets the Entry criteria for Cycle 1 test execution. |
M |
Now that we have taken a detailed look at the Performance testing planning, we should now see how we implement the script creation and implementation using SoapUI.