Guidelines for software performance testing with Apache JMeter
In our previous blog, we discussed about importance of software performance testing in the success of a software application. In this blog, we’ll discuss about the guidelines for the same using one of the most popular software testing tool – Apache JMeter.
There’s no doubt that software performance testing is mandatory to conduct before releasing any software application, as it ensures performance, customer satisfaction & also protects investment against probable product failure. Increased usage of smartphones by the users has led to a sudden surge in engaging applications for the same. Every software application is developed with diligence, but needs to go through a thorough testing procedure to ensure a great performance.
The tools used for software testing is equally important as the testing process itself, as it ensures improvement in reliability, scalability and performance of any software, web or mobile application. Generally, tool selection is based on technology of the product and client preference. Let’s discuss about one of the most popular software testing tool Apache JMeter.
What is Apache JMeter?
It is an open source tool for software performance testing, i.e. there is no licensing fee and it is available free. It delivers reliable results for performance & load testing requirements and also provide report for key bottleneck and areas for improvement of an application. It is free tool but it requires an expert software tester to setup right framework for performance test with most optimized architecture, which would result into various statistics of performance criteria of an application.
Why to prefer Apache JMeter?
Two of most popular Software Testing Tools available in market are: HP Load Runner & Apache JMeter. HP Load Runner is the market leading software testing tool, but it comes with a high price tag. While, Apache JMeter is an open source software testing tool (i.e. free) and it has many advantages beyond performance testing for any specific software / web application. It is best for simulating a heavy load on a single server or a group of servers to analyze the performance level. It works fine on the networks or different objects to evaluate their strength under the stress of different types of loads.
Load & Performance Testing:
The primary goal of Load & Performance testing is to establish the benchmark behaviour of a software application. Accuracy and close monitoring of the performance and results of the test is the primary characteristic of performance testing.
Outcome of Load & Performance Testing:
Reports available after Load & Performance testing are:
- Load & Performance Testing Report (Response Time, Page Load time, Throughput, Error Rate, Bandwidth, Memory usage) with different number of users load.
- Optimization suggestion report.
- A variety of graphical analysis of performance reports (Transaction per second, Hits per second, etc.)
Entry Criteria for Load & Performance Testing:
- To start Performance testing we need a stable & bug free application on staging environment.
- Test Document – Load Test scenarios document with valid steps. All the Test Metrics and Exit Criteria are defined in the document.
- Performance testing environment with tool setup.
- High speed connection to do performance testing.
- Prepare data driven framework for the performance testing.
- Client Server credentials to prepare Performance & Resource monitor.
- After all the test scripts are prepared and executed.
- All scripts run properly with any numbers of data.
Load Test Approach: Below figure shows flow of execution in load testing approach.
Other monitoring tools that can be used for Analysis and Continuous performance measurement:
- New Relic: Continuous monitoring tool that is integrated with server and give the data on web application of CPU utilization, RAM consumption, throughput and Bandwidth usage.
- SQL profilers (For .Net Applications): Microsoft SQL Server Profiler is a graphical user interface to SQL Trace for monitoring an instance of the Database Engine or Analysis Services. Users can capture and save data about each event to a file or table to analyse later.
- .Net profilers: Zero-overhead profiler makes code profiling and memory usage optimizations simple and fast.
- Jet profiler (For PHP Applications): Jet Profiler is a real-time query performance and diagnostics tool for the MySQL database server. Its core features: Query, table and user performance, Graphical visualization, Low overhead, User friendly.
Amidst a range of wonderful software testing tools available in the market, Apache JMeter is a powerful Java based performance testing tool that is an open-source and available absolutely free of cost. It is used for Performance, Load and Stress testing of web applications. Today, the companies are opting for Apache JMeter for software testing as the results are not only fantastic but also reliable.
Author: This blog is written by Software Quality Assurance team at TatvaSoft. In the next article, we’ll take this topic of software performance testing further and discuss about post production performance related issues & resolution. Please contact us for any queries or requirements of software testing.