Performance testing, a type of ‘non-functional testing’ is essential to ensure that the user experience is good. People expect fast response times with no system downtime and if this is not achieved it can cause reputational damage to a business and impact the bottom line.
We have all experienced bad performing websites or apps, especially during peak times and perhaps even experienced system outages – there seems to be a depressingly regular stream of stories in the media about this every year. Bad news!
Performance testing should ensure that the requirements are defined in collaboration with the product owners and technical leads and architects. This way accurate performance tests can be carried out on the system which will have meaningful results to make decisions on.
There is no point in testing a system with artificial or made uploads and concurrency; without knowing the requirements and how testing will make your product better, then there would be little point. Requirements would include expected loads to be handled and concurrent users as well as the desired response times.
Performance testing should not be considered an activity to be done just before going live but should be considered throughout development so that performance can be built-in, i.e. ‘shift left’ testing in an agile environment. It is important to form relationships with developers and functional and automation testers to gain an understanding of the product and to share test artifacts
The framework is designed so that the time taken to create performance tests and the duplication of effort, is reduced. At the heart of the framework is the reuse of automation scripts to transform them into performance scripts. There must be a collaboration with stakeholders to determine what automation scripts will be suitable for this. It is also important to specify what metrics are to be captured for which steps in a user journey as well as the type of test scenarios to be executed.
The framework is tool agnostic and comprises of four steps
- Replay the automation scripts and capture the traffic
- Generate the performance test scripts from step 1
- Augment the performance scripts and review
- Run the performance test scripts in a test scenario and report findings
Depending on the test tools used the method of how steps 1 & 2 will vary but the main advantage of this framework is that performance test scripts can be created as soon as the automation scripts are completed and can occur early, which will save time. The performance script created will have the same user steps as the automation script, which will reduce the duplication of effort required.