Performance Testing is the process of measuring a system’s performance by increasing the demand on the system. It is performed to ascertain a system's behavior under normal as well as the estimated peak load conditions. JMeter is a segment of Apache Open Source project. It is an application which can be used to perform functional testing and load testing. It is designed as pure Java application and can be used to perform load testing of any type of web application including the ones written in .NET, PHP etc.
With the help of Jmeter, multiple threads can be created, timers can be set-up for testing, assertions and listeners can be set for the test plan. Test plan enables the user to set the test configuration that are specific for an application. After right clicking the ‘Test Plan’ item, menu is revealed. In menu, on hover to the ‘Add’ item user can see various test features that can be created for a test plan. After the creation of the test features, these are executed by the tester.
Following benefits are offered by JMeter in Performance testing:
1. JMeter can be implemented to test the performance of both staticresources such as HTML, as well as the dynamic resources, such as AJAX.
2. JMeter can recognizemaximum count of simultaneous users that can be handled by a website.
3. JMeter helps to analyze the performance reports graphically.
4. JMeter generates the load on the server and also comes with an agent that can be run on the server machine for the collection of server performance metrics.
JMeter consists of many listeners which provide useful information like response time of each request, number of the requests being processed, response data, throughput, error percentage, etc. but actually there is a strong need to know the utilization of server system resource, like CPU/Memory utilization. If JMeter tests are run against software running on a computer or server, the chances are that the user will manually match the JMeter results with a statistics of CPU or Memory Usage from the server. This process can be made lot more easier by using ‘PerfMon Metrics Collector’ that is basically a listener.
Below is the graphical view of server resource utilization parameters.
There is a plugin called ‘PerfMon’ available in JMeter Plugins which provides a way to collect the performance metrics of your server’s health. The ServerAgent is available for collecting the server performance metrics, and one JMeter plugin that provides us a visual report of the same. The ServerAgent by default opens the port 4444 and starts a thread to listen all the data present on the server machine. It also allows the external system to read the listened data and the JMeter plugin ‘jp@gc – PerfMon Metrics Collector’ can listen to the ServerAgent on the server. User can start the PerfMon Agent by opening the ‘startAgent.bat’ file and user is supposed to run this on all servers from where he/she is interested to collect the data. As the PerfMon Agent runs, user is allowed to collect the data using the PerfMon Metrics Collector plugin. Moving further, to create the lines on the graph ‘Add Row’ can be used using a row per metric. ‘Row’ tab can be used by the user to filter the collected data if he/she just wants to see the CPU data on its own.
The available PerfMon metrics include:
iv) Disks I/O
v) Network I/O
Steps to View System Server Health using ‘PerfMon’:
Now when the user is all set up, here are the steps to view the system’s health:
1. User needs to go to the Application Under Test.
2. Select the “Performance” tab from the Task Manager.
3. Choose the “Ethernet” view.
4. In JMeter, user needs to add the PerfMon Metrics Collector Listener and must provide the machine’s IP address that has the test application, the port the PerfMon Server Agent is listening to, and the “interested” metric that user needs to see.
5. Now the test can be started and user can take a look at the charts on the left and the right.
6. In this way, user can monitor severalPerfMon metrics, including: CPU, Memory, Disk I/O, Network I/O, and JMX.