To test the performance of a system, there are many components “under the bonnet” that need to be fit for purpose and functionally correct.
When performance testing a system, there are many considerations, some of which are listed below:
The performance testing tool gives you control over your tests and the dashboard to see the metrics and results of your tests. It is vital to choose the correct tool, based on your requirements and capabilities within the team.
Some tooling can be difficult to learn. A tool like JMeter is popular within the industry due to its codeless nature and ease of use, but there may be skill within the test team which allow adoption of different tooling.
Your personal or work PC doesn’t have the resource to simulate acting as thousands of virtual users without completely exhausting the resources of the machine. It may be a requirement to have access to resources to be able to push a larger number of virtual users through your system. by using additional in-house solutions or cloud infrastructure like Amazon Web Services (AWS).
Performance testing is pointless if you don’t have access to a like-for-like environment of production to test against.
Testing against QA will not provide accurate results for live. You also can’t scale up from the difference in resource from QA, as it won’t yield accurate results if there is a bottleneck in the system.
Testing against production is dangerous and can be extremely costly if the entire site grinds to a halt.
You will need to have access to a 1:1 environment for production, with the exact same configuration in order to have accurate results.
There are many solutions that can provide the software and test design. These are the most commonly used:
JMeter is an open source Java application, with the capability to design and execute performance tests. Its major limitation is that it’s only a piece of software, meaning you would have to provide the infrastructure to be able to run loads. You can still run small loads of virtual users as long as it stays within the resource pool of your device.
Codeless solution makes it easy to learn and execute. This solution is free.
Taurus is an open source test automation framework built with the intent to test performance of a system. It has the same drawbacks as JMeter, in that it doesn’t provide infrastructure and only runs on the machine you’re using.