Performance Test Strategy and Approach
Project/Module context understanding:
The performance team will try to understand the project context, And learn about different use cases.
The performance team will start thinking about a performance test strategy.
The team should start creating the scenario keeping performance testing in scope.
Understand the test date needed to perform load testing.
Get business expected response time and number of users accessing systems.
Tentative development completion time.
Project/Module implementation walk through:
Dev team to help performance team to understand the technical implementation details.
Share the architecture walk through to help the performance team identify test data modeling.
API contract discussion.
API dependencies and access details.
Understanding infra details.
Performance test feasibility and challenges:
Based on functional and technical understanding, the performance team will have a discussion with the dev and communicate whether the required feature can be performance testable or not and also discuss the challenges.
Client and server detail:
The performance team provides client system configuration.This is required to generate the desired load.
Egov team to provide the required infra access (client and application server access)
Monitoring system access to check the API and System behaviour.
Performance testing objective and deliverables:
Based on functional and technical requirements, the Performance test team defines the concurrent load, duration of test execution, types of load testing and reporting detail.
Get approval on load modelling from the dev and business team.
Typical performance testing carries 3 types of testing, Load, Stress and Endurance. All 3 might not be needed all the time. The team can discuss what type is needed for the particular feature.
Define success criteria for application performance.
Performance test approach:
Typically we follow two approaches
Independent API’s performance test or real-time load simulation
Identify the API to test as part of the feature
Identify dependency between the API’s
Remove dependency by setting up test data before the actual load test
This approach is recommended and also scaleable
Here each API’s throughput can be controlled effectively
Designing a test plan using this approach takes more time than the scenario wise simulation.
Scenario wise performance test
A test plan will be created based on the scenario
If each API has a dependency with one and another, then throughput control is tough to manage
This approach is quicker and can be implemented with less effort
Based on the complexity and timeline, the performance team will follow any one of the above approaches and the same will be communicated to stakeholders.
Performance testing scope:
The current scope is to test the API performance. We can leverage the scope to test environment(POD) auto-scaling.
As mentioned earlier we would be doing Load testing, Stress, Endurance and Spike testing based on the module need.
The team will help run multiple iterations or share performance scripts with the dev team to improve code quality.
Server-side detailing such as CPU and Memory utilization.
With the help of the monitoring tool, the team can trace the higher response API’s and also debug the errors.
Test execution result (Jmeter reporting and Server report matrix obtained from monitoring tools).
Performance testing tool and environment:
Jmeter
Monitoring tools
Recommended to have one or multiple instances of Live like environment.
Risk Analysis:
Overall performance test activities:
Reporting sample :
Avg response time for different user load
API’s error contribution for a different load
Aggregate report for different runs - Overall performance of an API