View All
View All
View All
View All
View All
View All
View All
View All
View All
View All
View All
View All

JMeter Tutorial: Everything to Know

By Pavan Vadapalli

Updated on Nov 24, 2022 | 9 min read | 5.7k views

Share:

The trickiest part of working with web applications is knowing how to balance the load. Every web application has a maximum load capacity, beyond which the app might become unresponsive, slow, or start throwing errors. Therefore, load testing becomes an essential aspect of the entire app development cycle. JMeter is a highly convenient tool for load testing to ensure applications run efficiently. 

In this article, let’s try and understand what Apache JMeter is, its benefits, limitations, and how to use it for load testing.

Check out our free courses related to software development.

Apache JMeter – What is it?

Apache JMeter is essentially a load testing tool, and to understand its usage, knowing load testing is essential.

A load test simulates the end-user behaviour to approach the load limits of an application, making it possible to test the boundaries of an application and work around it as needed. Testers use JMeter to simulate heavy loads on single or multiple networks, servers, or objects to test load vulnerabilities, solve them and improve app performance. 

Apache JMeter works by simulating groups of users that send requests to networks or servers. Then, the tool returns statistics using visual cues and diagrams. Also, JMeter’s GUI is similar to a browser, making it easier for testers to get accustomed to the environment. However, JMeter cannot render HTML pages or JavaScript code found in the HTML pages. JMeter Plug-ins extend support for greater functionality available on Plug-in Manager. 

Use-cases of JMeter

Apart from load testing, JMeter is efficient for performance testing, unit testing, and even spike testing. Let’s understand these in slightly more detail: 

  • Performance testing is a process to determine the responsiveness, speed, and stability of a network, computer, or application under the workload. 
  • Unit testing is required to analyse the smallest parts of an application. JMeter comes in handy when testing unit processes and protocols like LDAP, JDBC database connection, and JMS.
  • Spike testing is also a form of load testing, where loads are rapidly increased or decreased over short bursts of time before returning to the normal load. 

Now, let’s dive deeper into understanding the tool and how it performs load testing. 

Learn Software Development Courses online from the World’s top Universities. Earn Executive PG Programs, Advanced Certificate Programs or Masters Programs to fast-track your career.

Performing Load Testing with JMeter

Before beginning, ensure you have JMeter installed in your system. Visit the following link if you don’t – https://jmeter.apache.org/download_jmeter.cgi.

In the coming few steps, we will create a basic test plan giving you an idea of how to create and run load tests on JMeter.

Step 1: Add a thread group

To do this, follow these steps: 

  • Open JMeter window.
  • The left side of the window has all the added elements; the right side has all the configurations for that element.
  • Rename the test plan – for now, as FirstJMeter – and save it. 
  • Right-click on the test plan.
  • Go to Add -> Threads (Users) -> Thread Group, as shown in the image below: 

Coverage of AWS, Microsoft Azure and GCP services

Certification8 Months

Job-Linked Program

Bootcamp36 Weeks

source

As soon as you click on the Thread Group, you will see three things on your screen concerning the load test. These are: 

  • The number of threads (users): It indicates the number of threads or users that JMeter will simulate in this test. For our example, let’s keep its value as 100.
  • Ramp-Up Period (in seconds): This refers waiting duration of Jmeter before starting the thread over. This value is kept as 12 for this example. 
  • Loop Count: This refers to the number of test executions. Let’s leave this value at 1. 

source

Once this is in place, the next step is to add an HTTP Request Default. 

Step 2: Adding HTTP Request Defaults

HTTP request defaults are added to ensure the redirection of multiple HTTP requests to the same server. To do this:

  • Right-click on the Thread Group. 
  • Go to Add -> Config Element -> HTTP Request Defaults. 

A window will appear before you. In this window, fill the Server Name or IP with the server you want to test. Then, the next step is to add a Cookie Manager. 

source

Step 3: Adding an HTTP Cookie Manager

We will support cookies by adding a Manager to the thread group in this step. For that: 

  • Right-click on the Thread Group. 
  • Go to Add -> Config Element -> HTTP Cookie Manager

Step 4: Adding an HTTP Request Sampler

To do this, follow these steps: 

  • Right-click on the Thread Group.
  • Go to Add -> Sampler -> HTTP Request

Under the HTTP Request Section, you will get the path that each user or thread will request. We will, for now, set it as “/” for easy access to threads on the server homepage. 

source

You can add any number of HTTP requests as you want. All you need to do is repeat the above step. 

Step 5: Adding a View Results option in Table Listener

Listeners are useful to provide the outputs of any load test. JMeter comes with different listeners, and you can even use added plug-ins to access more listeners. However, the listener used here is the Table – since it is easy to read. For that: 

  • Right-click on the Thread Group.
  • Go to Add -> Listener -> View Results in Table

source

You can type a value for Filename to output the results to a required .csv file. 

Step 6: Running the Basic Test Plan

Finally, with everything in place, perform the following steps to run your basic test plan: 

  • Save the test plan. 
  • Click on View Results in Table.
  • Click on the green start button that indicates ‘Run’.

You get the results in a table, as shown below: 

source

Received results will be neatly placed in a tabular format. We can see the status of all the requests as “success”. 

There are two essential columns to watch – Latency and Sample Time. 

Latency refers to the time elapsed between JMeter sending the request and the initial response received. In contrast, sample time refers to the milliseconds taken by the server to complete incoming requests. We can fluctuate the value of the number of users or loop other variables to perform the same demo on different values. 

Now that you know how to perform basic load testing using JMeter let’s look at some advantages and disadvantages. 

Advantages of JMeter

Here are some advantages of using JMeter in modern organisations for load testing activities: 

  • The tool is open-source and free to use. Further, it can be tailored to fit the company’s requirements or personalisation. 
  • Unlike other testing tools, JMeter does not require testers to be highly skilled at programming or coding. Freshers can use it for all load testing challenges. 
  • JMeter is platform-independent. Since the tool is written in one of the most commonly used programming languages – Java – it has easier access to all operating systems.
  • JMeter provides robust and comprehensive reports that are complemented by great visual depictions. 
  • The tool supports automation expanding its testing capabilities beyond just manual load testing. For example, JMeter allows testers to create automated test cases and execute them without human involvement. 

Overall, JMeter is a handy tool for load testing, performance testing, spike testing, etc. The added benefits of amazing visuals and reports make it an indispensable tool for modern organisations. That said, this tool doesn’t come without limitations. 

Disadvantages or Limitations of JMeter

Let’s now look at some disadvantages of JMeter to give you a comprehensive picture of the tool: 

  • Scripting in JMeter requires some understanding of regular expressions, session handling, test plan elements, etc. 
  • JMeter does not come with network visualisation features like Loadrunner and other performance testing tools. 
  • A single configuration machine is insufficient to carry out several user load tests. It requires cloud machine or distributed testing. 
  • JMeter does not support AJAX, JavaScript, or Flash, and neither does it render web elements like a browser. 
  • JMeter provides limited real-time monitoring abilities when compared to many other tools. 

In Conclusion

JMeter is a valuable tool with its fair share of limitations. However, it is a highly beneficial tool for organisations looking to perform load testing on their applications. 

Testing is highly complex yet crucial for any application. Software development life cycle is incomplete without proper testing. 

At upGrad, we understand the importance of all lifecycle elements and design our courses to accustom learners to all the essential stages. So check out our Executive PG program in Software Development and advance your career in data engineering, big data development, software development, data architecture, etc. Check it out today!

Frequently Asked Questions (FAQs)

1. What is JMeter’s application?

2. What is JMeter written using?

3. What can not be tested using JMeter?

4. What can not be tested using JMeter?

Pavan Vadapalli

900 articles published

Get Free Consultation

+91

By submitting, I accept the T&C and
Privacy Policy

India’s #1 Tech University

Executive PG Certification in AI-Powered Full Stack Development

77%

seats filled

View Program

Top Resources

Recommended Programs

upGrad

AWS | upGrad KnowledgeHut

AWS Certified Solutions Architect - Associate Training (SAA-C03)

69 Cloud Lab Simulations

Certification

32-Hr Training by Dustin Brimberry

upGrad KnowledgeHut

upGrad KnowledgeHut

Angular Training

Hone Skills with Live Projects

Certification

13+ Hrs Instructor-Led Sessions

upGrad

upGrad KnowledgeHut

AI-Driven Full-Stack Development

Job-Linked Program

Bootcamp

36 Weeks