To choose the right performance testing tool is the first and foremost requirement in the planning phase. After understanding the application architecture and business requirements, you have to select the performance testing tool which meets the performance objectives. Since each tool has pros and cons so you can not say which is the best tool without conducting a POC (proof of concept). Some clients do not have enough budget to bear the licensing cost of the tool so they insist on the best open-source tool which eliminates this extra cost spending on the purchase of a tool. Again, there are many open-source tools in the market and to select the best one is another challenge. In this post, some of the basic parameters are listed which can help you to choose the right performance testing tool.
1. Tool Cost
This parameter depends on Client’s budget. There are three categories of performance testing tool based on cost:
- Open-source: It is a free performance testing tool which includes scripting, scenario creation, test execution and resource monitoring without spending any single coin.
- Licensed: You have to purchase the license of such tools as per client or project requirement. The license bundles are based on user count or type of protocol. A licensed tool has a complete package of scripting, test execution and result-analysis tool.
- Cloud-based: It is a kind of hybrid performance testing tool which charges only for the execution of the test by generating the desired load. You can use an open-source tool for preparing the test script, upload it on the cloud and run the test. Such tools are cheaper than licensed performance testing tool.
2. Supportive Protocol
- Understand the type of the application and communication channel
- Check whether the communication protocol supported by the tool or not?
- Most of the applications are either web-based or web-services which is common and many performance testing tool support those technologies.
- Windows-based, SAP, mainframe, DB testing are exceptions and rare tools support them.
3. Hardware Cost
- Another major factor is whether the tool required any dedicated hardware specially for the test execution purpose. If yes then the cost should not affect the client or project budget.
- Cloud-based performance testing tool is one of the best options to save the hardware cost.
- Note that you do not need any dedicated hardware for scripting unless the application is in a secured environment.
4. Skilled Resources
- Do not choose such a tool which does not have skilled resources in the market. It may lead to extra payout to the resource and project expenditure may get direct impact.
- Any new tool in the market has the crunch of skilled resource, so always give first preference to the existing performance testing tool with experienced resources, provided that the existing tool supports the testing of AUT.
5. Tool Support
- The dedicated support team is always better than Google so prefer the tool which has proper support on the operational issues. Licensed tools always win this race.
- Only having the tool support team is not enough, there should be proper issue management and tracker system where you can raise the ticket or chat with the team. Such options help to solve the issue as quickly as possible and meet the project timelines.
- In case you have an expert team of open-source tool then you can go for it and save the project cost.
6. Recording Option
- The tool must have a recording option to record the business flows.
- Recording option is helpful for web application scripting and 80% of AUT falls in this category.
- If the requirement is just to test the APIs then this parameter is optional.
7. Scenario Designing Inputs
Workload Modelling is one of the important tasks for performance tester. Incorrect workload model or scenario creation spoils the purpose of the test. Hence the performance testing tool should have the feature to create various types of scenarios like Load Test, Stress Test, Soak Test, Spike Test, Step-up Test etc. To create such types of test scenarios, performance testing tool must have the following options:
- Input for Users at the beginning and at different time period: This is required to create the scenario like Spike Test, Step-up Test etc.
- Input for Ramp-up and Ramp-down: To save the application from the sudden load at the beginning of the test, ramp-up is used. Ramp-up helps to gradually increase the load on the server and ramp-down gradually decreases the load at the end of the test.
- Pacing: An important parameter to control the transaction rate on the server and helps to meet the NFR. Refer to Pacing Calculator to calculate the pacing.
- Think Time: It helps to achieve the user concurrency during the test by extending the iteration time. Refer to the article for more details on Think Time and Think Time Calculator.
- Run Mode: There are two types of run modes which are Duration and Iteration.
- Duration: To run the test for a specific period of time.
- Iteration: To run the test for a specific iteration count.
- Scenario Mode: Manual and Goal-Oriented scenarios are two scenario modes. This is an optional requirement. If a tool has this feature then it is an add-on in the tool.
- Scheduler: Test scheduling is also an optional feature to schedule a test in late night or weekends.
To feed the user inputs like user name, password etc. parameterization option is a must. Parameter values can be provided by defining variables, simple text file, csv file or directly fetch from the database.
- The method of handling dynamic values should not be complex. There should be an easy way to identify the dynamic value and apply the logic to handle it.
- The auto-correlation feature is an add-on.
10. Transaction & Request
- The performance testing tool must have the feature to group the related requests under a transaction.
- A transaction can be a user action or business step which includes the number of requests belongs to the particular action/step.
- Remember the transaction rate i.e. TPS and request rate i.e. RPS both are different unless the transactions have only one request.
11. Response Validation
The performance testing tool must have the feature to validate the correctness of the response during the test. Lack of this feature leads to functional issues that occurred during the performance test.
11. Live Monitoring
- To check the active user count, transaction rate, request rate, errors etc. live monitoring of the test is required.
- Some open-source tools do not have live monitoring option but they can be integrated with other tools to get the live statistics.
12. Result Analyser
- The tool must have the feature to display the result in different formats like Graph, Table, Chart etc. to analyze the test result.
- Filter option helps to narrow down the analysis for finding bottlenecks.
- Graph merging is an add-on feature for result analyzer.
- Report generation option saves a performance tester to prepare the manual report. Some tools support to generate the report in different format like PDF, DOC, CSV, HTML etc.
13. Integration with other tools
In the DevOps world, CI/CD concept uses many tools to automated end-to-end process. The performance testing tool should have the ability to integrate with other tools. Also the integration should not be complex and time consuming.
So, these are some basic parameters which you can use to choose the right performance testing tool that meets your requirement. You can also conduct POC (Proof of Concept) on tools based on above-mentioned parameters.