triangle
How We Can Measure Server Performance Using JMeter?

15-Nov-2017

How We Can Measure Server Performance Using JMeter?

Performance Testing works as 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 the Apache Open-Source project. It is an application that can be used to perform functional testing and load testing. It is designed as a 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, and assertions and listeners can be set for the test plan. A test plan enables the user to set the test configuration that is specific to an application. After right-clicking the ‘Test Plan’ item, the menu is revealed. In the menu, on hover over 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. 

With years of experience providing performance testing services to business organizations from diverse niche, this blog will help you understand the benefits JMeter dissipates for performance testing while sharing a quick guide on measuring server performance using JMeter. 

Let’s begin! 

Using JMeter For Performance Testing 

  • JMeter can be implemented to test the performance of both static resources such as HTML, as well as dynamic resources, such as AJAX. 
  • JMeter can recognize the maximum count of simultaneous users that can be handled by a website. 
  • JMeter helps to analyze the performance reports graphically. 

Wondering How Continuous Performance Testing Works? 

Read Here: Continuous Performance Testing: Understanding The Best Practices 

  • 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 that provide useful information like the response time of each request, the number of requests being processed, response data, throughput, error percentage, etc. but actually there is a strong need to know the utilization of server system resources, 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 statistics of CPU or Memory Usage from the server. This process can be made a lot easier by using ‘PerfMon Metrics Collector’ which is basically a listener. 

Below is the graphical view of server resource utilization parameters. 

Server Resources Utilisation

Server Resources Utilisation

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 with a visual report of the same.

The ServerAgent by default opens port 4444 and starts a thread to listen to all the data present on the server machine. It also allows the external system to read the listener data and the JMeter plugin ‘jp@gc – PerfMon Metrics Collector’ can listen to the ServerAgent on the server. Users can start the PerfMon Agent by opening the ‘startAgent.bat’ file and the user is supposed to run this on all servers from where he/she is interested to collect the data.

As the PerfMon Agent runs, the 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:

i) CPU

ii) Memory

iii) Swap

iv) Disks I/O

v) Network I/O

vi) TCP

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, the 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 the user needs to see.

5. Now the test can be started and the user can take a look at the charts on the left and the right.

6. In this way, the user can monitor severalPerfMon metrics, including CPU, Memory, Disk I/O, Network I/O, and JMX.

The Crux 

To conclude, performance testing is an extremely crucial part of the overall Quality Assurance process. It not only helps to create technology that performs smoothly for every load condition but even complements the scalability and sustainability goals of an application or software.  

Performance testing works as an extremely vital process for identifying the maximum operating capacity of any digital product. More importantly, performance and load testing allows launching robust solutions that are more future-proof.  

And just in case you are having trouble aligning the long-term objectives of your system server or enterprise software, feel free to reach our team through info@bugraptors.com 

author

Zoheb Khan

Zoheb works as QA Consultant at BugRaptors. He has excellent logic skills for understanding the work flow and is able to create effective documentation. He is well versed with manual testing, mobile app testing, game testing, cross platform, and performance testing. Highly motivated and ISTQB Certified tester with excellent analytical and communication skills.

Comments

No comments yet! Why don't you be the first?
Add a comment