JMeter Load Testing

Every web application that has ever existed has a maximum load capacity. If the load goes beyond a web application's capacity, the application might become slow or produce errors or just become useless. So, it becomes of utmost importance to perform load testing as a part of performance testing. 

The most important tool used to perform this load testing is JMeter, and we often use hence the term JMeter Load Testing.

We shall begin the article by learning the basics of load testing. 

What Is Load Testing?

There are different types of performance testing, and one of them is load testing. The load testing is performed to determine a system's performance concerning its real-life conditions. 

The sole motive to perform load testing is to check how much a load a system can handle. It confirms if a device or software can handle the load per the user's demand.

Furthermore, load testing is utilized for the identification of the maximum operating capacity of any application. With the help of load testing, you can determine if the present infrastructure is enough to run the application. Lastly, the test identifies the number of users that can work on an application concurrently. 

Want a Top Software Development Job? Start Here!

Full Stack Developer - MERN StackExplore Program
Want a Top Software Development Job? Start Here!

Tools for Load Testing

Load testing proves itself very significant when it comes to determining user demands and satisfaction. Several tools make load testing possible, such as:

  • Apache JMeter
  • WebLOAD
  • LoadUI
  • LoadRunner
  • NeoLoad
  • LoadNinja

We will be having a look at JMeter Load Testing in this article. Before that, let us have a look at the basics of JMeter.

What Is JMeter?

The Apache JMeter, popularly known as the JMeter, is open-source software. The software is a 100% pure Java application developed to load testing functional behavior and measuring performance. 

JMeter was initially developed to test applications, but it has expanded to several other test functions with several advancements. It is used to execute performance testing, functional testing, and load testing. The software is used to simulate a significant amount of load on a server or a group of servers to test the strength and analyze the strength under different load types.

Why Do We Use JMeter for Load Testing? 

Some of the major reasons why we use JMeter are: 

  1. Free of cost: JMeter is an open-source application that has no licensing cost.
  2. Performance testing of applications: The application is used to perform performance testing on different types of applications, like Web applications, web services, LDAP, database, and shell scripts.
  3. Platform independent: Since JMeter is a pure Java-based application, it can run on different platforms.
  4. Supports: JMeter not only supports performance testing but other non-functional tests such as Stress Testing, Web Service Testing, and Distributed Testing.
  5. Recording and playback: The application provides record and playback options enabled with a drag-and-drop feature, making the application faster and easier.
  6. Customizable: Since JMeter is an open-source application, it enables developers to customize it whenever needed.
  7. Community support: The application has a lot of tutorials and helping community support. There are free plugins available to help in different aspects of analysis. 

How to Perform JMeter Load Testing?

Before we begin with JMeter load testing, make sure you have JMeter installed in your system.

https://jmeter.apache.org/download_jmeter.cgi

In this, we are going to create a basic test plan in a few simple steps. 

1. Adding a Thread Group

  • Open the JMeter window.
  • The window is divided into two parts. The left side has all the added elements, while the right side has all the configurations of that element.
  • Rename the test plan and save it.
  • Let's rename it as the FirstJMeter.
  • Right-click on the test plan.
  • Go to add -> Threads (Users) -> Thread Group

thread

Now once you click on Thread Group, there are three things on the screen that are important concerning the load test:

  • The number of threads (users): It reflects the number of threads or users JMeter will simulate.

Let's make it 100.

  • Ramp-Up Period (in seconds): The duration of time that JMeter will take before starting the thread over.

Let’s keep this to be 12.

  • Loop Count: It is the number of times the test will be executed.

And this one, let's leave it to be 1.

Thread_Group_JMeter

The next step is to add an HTTP Request Defaults

Learn From The Best Mentors in the Industry!

Automation Testing Masters ProgramExplore Program
Learn From The Best Mentors in the Industry!

2. Add an HTTP Request Defaults 

This is done so that multiple HTTP requests can be sent to the same server.

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

In the window that appears, fill the Server Name or IP with the name of the server you want to test. Here, we have used Simplilearn’s website.

  • The next step is to add an HTTP Cookie Manager.

HTTP_Request_Defaults

3. Add an HTTP Cookie Manager

Here we shall support cookies by adding HTTP Cookie Manager to the Thread Group:

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

Add_Cookie_Manager

4. Add an HTTP Request Sampler

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

Under the HTTP Request section, HTTP Request gives the path that each thread or user will request. We will set it to be "/" so that each thread can access the homepage of our server.

HTTP_Request.

Any number of HTTP requests can be added. Further, all you need to do is repeat the above step.

5. Add a View Results in Table Listener

Listeners are something that is used to provide the outputs of a load test. There are different types of listeners present in JMeter, and a good deal may be added using plugins.

The listener we will use here is the Table, as it is comparatively easy to read.

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

View_Results_In_Table

A value for Filename may be typed to output the results to a CSV file.

6. Run the Basic Test Plan

  • Save the test plan.
  • Click on View Results in Table.
  • Click on the Run button (green start button).

You will see the test results in the Table, as shown below:

Result_LoadTesting_In_JMeter

The result shows the status of all the requests as “Success”. Then there are two important columns, Sample Time (ms) and Latency.

Latency refers to the number of milliseconds between the time JMeter sent the request and when an initial response was received.

Sample time refers to the milliseconds taken by the server to complete the request.

You can try the same demo by fluctuating the values of the number of threads or the loop. When you fluctuate these values, the sample time value or other output values will begin fluctuating, telling you if the system is overburdened or just fine.

Conclusion

By now, you would have learned about Load Testing and different tools that can be used to perform load testing. Moving forth, you learned the most popular and important tool to perform load testing, i.e. JMeter. After you learned the basics of JMeter and why it is extensively used, you started learning how to perform JMeter Load testing with the help of a hands-on demo.

If you want to know more about installing JMeter on your system and running a demo test, you can check this video.

If you have any questions for us, do let us know in the comment section below. We will have our experts answer it for you right away.

About the Author

Ishan GabaIshan Gaba

Ishan Gaba is a Research Analyst at Simplilearn. He is proficient in Java Programming, Data Structures, and Project Management. Graduated in Information Technology, Ishan is also passionate about writing and traveling.

View More
  • Disclaimer
  • PMP, PMI, PMBOK, CAPM, PgMP, PfMP, ACP, PBA, RMP, SP, and OPM3 are registered marks of the Project Management Institute, Inc.