---
description: Learn step by step performance testing for web applications using Jmeter
title: How to Use JMeter for Performance &#038; Load Testing
image: https://www.guru99.com/images/jmeter-for-performance-and-load-testing.png
---

 

[Skip to content](#main) 

**⚡ Smart Summary**

JMeter performance testing measures how a web application behaves under heavy concurrent load, combining load testing and stress testing to reveal maximum capacity, response times, and bottlenecks before real users overwhelm the server.

* 🧩 **Test Plan:** Thread Group, samplers, and listeners define the test.
* 👥 **Thread Group:** Sets users, ramp-up period, and loop count.
* 📊 **Listeners:** Graph and table results visualize performance data.
* 🔥 **Load vs Stress:** Load models expected traffic; stress finds the breaking point.
* 🤖 **AI Assistance:** AI models load profiles and flags performance regressions.

[ Read More ](javascript:void%280%29;) 

![JMeter Performance and Load Testing](https://www.guru99.com/images/jmeter-for-performance-and-load-testing.png)

## JMeter Load Testing

**JMeter Load Testing** is a testing process done using a load testing tool named Apache JMeter which is open source desktop application based on Java. JMeter for load testing is a crucial tool that determines whether the web application under test can satisfy high load requirements or not. It also helps to analyse overall server under heavy load.

## JMeter Performance Testing

**JMeter Performance Testing** is[ Testing ](https://www.guru99.com/software-testing.html)method performed using Apache JMeter to test the performance of a web application. JMeter for performance testing helps to test both static and dynamic resources, helps to discover concurrent users on website and provides variety of graphical analysis for performance testing. JMeter performance testing includes load test and stress test of web application.

[](https://www.guru99.com/images/PerformanceTesting.png)

Apache JMeter testing tool offers following **benefit** in [Performance Testing](https://www.guru99.com/performance-testing.html)

* JMeter can be used to test the performance of both **static** resources such as[ JavaScript ](https://www.guru99.com/interactive-javascript-tutorials.html)and HTML, as well as **dynamic** resources, such as JSP, Servlets, and AJAX.
* JMeter can **discover** maximum number of concurrent users that your website can handle
* JMeter provides a variety of graphical analyses of performance reports.

JMeter Performance Testing includes:

[](https://www.guru99.com/images/JMeterPerformanceTest.png)

* **Load** Testing: Modeling the expected usage by simulating multiple user access the[ Web services ](https://www.guru99.com/web-services-tutorial.html)concurrently.
* **Stress** Testing: Every web server has a maximum load capacity. When the load goes beyond the limit, the web server starts responding slowly and produce errors. The purpose of the [Stress Testing](https://www.guru99.com/stress-testing-tutorial.html) is to find the maximum load the web server can handle.

The figure below shows how JMeter load Testing simulates the heavy load:

[](https://www.guru99.com/images/JMeterApacheSampler.png)

## Create a Performance Test Plan in JMeter

In this tutorial, we are doing a performance analysis of Google.com for 1000 users using various [performance testing tools](https://www.guru99.com/performance-testing-tools.html) to ensure the website can handle the load and provide a seamless user experience.

Before testing the performance of target web application, we should determine-

* **Normal Load**: Average number of users visit your website
* **Heavy Load**: The maximum number of users visit your website
* What is your **target** in this test?

Here is the **roadmap** of this practical example

[](https://www.guru99.com/images/JMeterTestPlanFlow.png)

### RELATED ARTICLES

* [What is JMeter? How it Works ](https://www.guru99.com/introduction-to-jmeter.html "What is JMeter? How it Works")
* [Controllers in JMeter: Loop, Logic, Transaction ](https://www.guru99.com/controllers-in-jmeter.html "Controllers in JMeter: Loop, Logic, Transaction")
* [Top 23 JMeter Interview Questions & Answers (2026 Update) ](https://www.guru99.com/jmeter-interview-questions.html "Top 23 JMeter Interview Questions & Answers (2026 Update)")
* [9 JMeter Alternatives (2026 Update) ](https://www.guru99.com/jmeter-alternative.html "9 JMeter Alternatives (2026 Update)")

## Step 1) Add Thread Group

1. Start **JMeter**
2. Select **Test Plan** on the tree
3. Add **Thread Group**

Right click on the “Test Plan” and add a new thread group: **Add** \-> **Threads (Users)** \-> **Thread Group**

[](https://www.guru99.com/images/JMeterAddThreadGroup.png)

In the Thread Group control panel, enter Thread Properties as follows:

[](https://www.guru99.com/images/ThreadGroupJMeterPerformance.png)

* **Number of Threads**: 100 (Number of users connects to the target website: 100)
* **Loop Count**: 10 (Number of time to execute testing)
* **Ramp-Up Period**: 100

The Thread Count and The Loop Counts are **different.**

[](https://www.guru99.com/images/ThreadCountVSLoopCount.png)

Ramp-Up Period tells JMeter how long to **delay** before starting the next user. For example, if we have 100 users and a 100-second Ramp-Up period, then the delay between starting users would be 1 second (100 seconds /100 users)

[](https://www.guru99.com/images/UserDelayHTTP.png)

## Step 2) Adding JMeter elements

Now we determine what JMeter elements in this test. The elements are

* ### HTTP request Default

This element can be added by right-clicking on the Thread Group and selecting: **Add** \->**Config Element** \->**HTTP Request Defaults.**

[](https://www.guru99.com/images/ThreadGroupAddJMeterPerformance.png)

In the HTTP Request Defaults control panel, enter the Website name under test ([http://www.google.com](http://www.google.com/))

[](https://www.guru99.com/images/HTTPRequestJMeterPerformance.png)

* ### HTTP Request

Right-click on Thread Group and select: **Add** \-> **Sampler** \-> **HTTP Request**.

[](https://www.guru99.com/images/AddHTTPRequestJmeterPerformance.png)

In HTTP Request Control Panel, the Path field indicates which **URL request** you want to send to Google server.

[](https://www.guru99.com/images/HTTPRequestControlPanelJMeter.png)

For example, if you enter “_calendar_” in Path field. JMeter will create the URL request <http://www.google.com/calendar> to Google server

[](https://www.guru99.com/images/HTTPRequestCalenderJMeter.png)

If you keep the Path field blank  JMeter will create the URL request [http://www.google.com](http://www.google.com/) to Google server.

**In this test, you keep the Path field blank to make JMeter create the URL request** **[http://www.google.com](http://www.google.com/)** **to Google server.**

## Step 3) Adding Graph result

JMeter can show the test result in Graph format.

Right click Test Plan, **Add** \-> **Listener** \-> **Graph Results**

[](https://www.guru99.com/images/AddGrapgResultJMeter.png)

## Step 4) Run Test and get the test result

Press **the Run** button (Ctrl + R) on the Toolbar to start the software testing process. You will see the test result display on Graph in the real time.

The picture below presents a graph of a test plan, where we simulated 100 users who accessed on website [www.google.com](http://www.google.com/).

[](https://www.guru99.com/images/RunTestPlan.gif)

At the bottom of the picture, there are the following statistics, represented in colors:

* Black: The total number of current samples sent.
* Blue: The current average of all samples sent.
* Red: The current standard deviation.
* Green: Throughput rate that represents the number of requests per minute the server handled

Let analyze the performance of Google server in below figure.

[](https://www.guru99.com/images/GraphResultGraphJMeter.png)

To analyze the performance of the web server under test, you should focus on 2 parameters

* Throughput
* Deviation

The **Throughput** is the most important parameter. It represents the ability of the server to handle a heavy load. The **higher** the Throughput is, the **better** is the server performance.

In this test, the throughput of Google server is 1,491.193/minute. It means Google server can handle 1,491.193 requests per minute. This value is quite high so we can conclude that Google server has good performance

The **deviation** is shown in red – it indicates the deviation from the average. The **smaller** the **better**.

Let compare the performance of Google server to other web servers. This is the performance test result of website <http://www.yahoo.com/> (You can choose other websites)

[](https://www.guru99.com/images/GraphToDisplayJMeter.png)

The throughput of a website under test [http://www.yahoo.com](http://www.yahoo.com/) is 867.326/minutes. It means this server handle 867.326 requests per minute, lower than Google.

The deviation is 2689, much higher than Google (577). So we can determine the performance of this website is less than a Google server.

**NOTE:** The above values depend on several factors like current server load at Google, your internet speed, your CPU power etc. Hence, it’s very unlikely that you will get the same results as above. So don’t panic! If you’re interested in understanding how server load impacts performance and how to test it, you might find this [load testing tutorial](https://www.guru99.com/load-testing-tutorial.html) useful.

## Troubleshooting

If you face the issue while running the above scenario … do the following

1. Check whether you are connecting to the internet via a proxy. If yes, remove the proxy.
2. Open a new instance of Jmeter
3. Open the [PerformanceTestPlan.jmx](https://drive.google.com/uc?export=download&id=0B%5FvqvT0ovzHcTjl1NGdpTUp5Y1E) in Jmeter
4. Double Click on Thread Group -> Graph Result
5. Run the Test

## FAQs

📈 What is throughput in JMeter performance results?

Throughput is the number of requests JMeter completes per second; higher throughput means the server handles more load.

👥 How many virtual users can JMeter simulate?

A single JMeter instance simulates hundreds to a few thousand users; distributed testing across machines scales to tens of thousands.

⚖️ JMeter versus LoadRunner, what is the difference?

JMeter is free, open-source, and Java-based, while LoadRunner is commercial with broader protocol support and advanced analysis.

🤖 Can AI analyze JMeter performance test results?

Yes. AI reads JMeter result graphs, detects anomalies and bottlenecks, and links slow responses to load levels.

🧠 How is AI used in load testing?

AI generates realistic workload models, auto-tunes thread and ramp-up settings, and predicts capacity from historical data.

#### Summarize this post with:

ChatGPT Perplexity Grok Google AI 

**Stay Updated on AI** **Get Weekly AI Skills, Trends, Actionable Advice.** 

##### Sign up for the newsletter

Subscribe for Free 

You have successfully subscribed.  
Please check your inbox. 

![AI-Newsletter]() Chosen by over **350,000+** professionals 

[Scroll to top ](#wrapper)Scroll to top 

× 

Toggle Menu Close 

Search for: 

Search

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://www.guru99.com/#organization","name":"Guru99","sameAs":["https://www.facebook.com/Guru99Official","https://twitter.com/guru99com"],"logo":{"@type":"ImageObject","@id":"https://www.guru99.com/#logo","url":"https://www.guru99.com/images/guru99-logo-v1-150x59.png","contentUrl":"https://www.guru99.com/images/guru99-logo-v1-150x59.png","caption":"Guru99","inLanguage":"en-US"}},{"@type":"WebSite","@id":"https://www.guru99.com/#website","url":"https://www.guru99.com","name":"Guru99","publisher":{"@id":"https://www.guru99.com/#organization"},"inLanguage":"en-US"},{"@type":"ImageObject","@id":"https://www.guru99.com/images/jmeter-for-performance-and-load-testing.png","url":"https://www.guru99.com/images/jmeter-for-performance-and-load-testing.png","width":"700","height":"250","caption":"JMeter for Performance &amp; Load Testing","inLanguage":"en-US"},{"@type":"BreadcrumbList","@id":"https://www.guru99.com/jmeter-performance-testing.html#breadcrumb","itemListElement":[{"@type":"ListItem","position":"1","item":{"@id":"https://www.guru99.com","name":"Home"}},{"@type":"ListItem","position":"2","item":{"@id":"https://www.guru99.com/jmeter","name":"JMeter"}},{"@type":"ListItem","position":"3","item":{"@id":"https://www.guru99.com/jmeter-performance-testing.html","name":"How to Use JMeter for Performance &#038; Load Testing"}}]},{"@type":"WebPage","@id":"https://www.guru99.com/jmeter-performance-testing.html#webpage","url":"https://www.guru99.com/jmeter-performance-testing.html","name":"How to Use JMeter for Performance &#038; Load Testing","dateModified":"2026-06-27T14:16:05+05:30","isPartOf":{"@id":"https://www.guru99.com/#website"},"primaryImageOfPage":{"@id":"https://www.guru99.com/images/jmeter-for-performance-and-load-testing.png"},"inLanguage":"en-US","breadcrumb":{"@id":"https://www.guru99.com/jmeter-performance-testing.html#breadcrumb"}},{"@type":"Person","@id":"https://www.guru99.com/author/thomas","name":"Thomas Hamilton","description":"I am Thomas Hamilton, a seasoned professional in software testing, specializing in crafting comprehensive guides to help you master your software testing skills.","url":"https://www.guru99.com/author/thomas","image":{"@type":"ImageObject","@id":"https://www.guru99.com/images/thomas-hamilton-author-v2-120x120.png","url":"https://www.guru99.com/images/thomas-hamilton-author-v2-120x120.png","caption":"Thomas Hamilton","inLanguage":"en-US"},"worksFor":{"@id":"https://www.guru99.com/#organization"}},{"articleSection":"JMeter","headline":"How to Use JMeter for Performance &#038; Load Testing","description":"Learn step by step performance testing for web applications using Jmeter","keywords":"jmeter","speakable":{"@type":"SpeakableSpecification","cssSelector":[".entry-title",".summary"]},"@type":"Article","author":{"@id":"https://www.guru99.com/author/thomas","name":"Thomas Hamilton"},"dateModified":"2026-06-27T14:16:05+05:30","image":{"@id":"https://www.guru99.com/images/jmeter-for-performance-and-load-testing.png"},"copyrightYear":"2026","name":"How to Use JMeter for Performance &#038; Load Testing","subjectOf":[{"@type":"HowTo","name":"How to Use JMeter for Performance &amp; Load Testing","description":"JMeter Load Testing is a testing process done using a load testing tool named Apache JMeter which is open source desktop application based on Java.","step":[{"@type":"HowToStep","name":"Step 1) Add Thread Group","text":"Start JMeter Select Test Plan on the tree","image":{"@type":"ImageObject","url":"https://cdn.guru99.com/images/JMeterAddThreadGroup.png"},"url":"https://www.guru99.com/jmeter-performance-testing.html#step1"},{"@type":"HowToStep","name":"Step 2) Adding JMeter elements","text":"Now we determine what JMeter elements in this test.","image":{"@type":"ImageObject","url":"https://cdn.guru99.com/images/ThreadGroupAddJMeterPerformance.png"},"url":"https://www.guru99.com/jmeter-performance-testing.html#step2"},{"@type":"HowToStep","name":"Step 3) Adding Graph result","text":"JMeter can show the test result in Graph format.","image":{"@type":"ImageObject","url":"https://cdn.guru99.com/images/AddGrapgResultJMeter.png"},"url":"https://www.guru99.com/jmeter-performance-testing.html#step3"},{"@type":"HowToStep","name":"Step 4) Run Test and get the test result","text":"Press the Run button (Ctrl + R) on the Toolbar to start the software testing process. You will see the test result display on Graph in the real time.","image":{"@type":"ImageObject","url":"https://cdn.guru99.com/images/RunTestPlan.gif"},"url":"https://www.guru99.com/jmeter-performance-testing.html#step4"}]},{"@type":"FAQPage","mainEntity":[{"@type":"Question","name":"What is throughput in JMeter performance results?","acceptedAnswer":{"@type":"Answer","text":"Throughput is the number of requests JMeter completes per second; higher throughput means the server handles more load."}},{"@type":"Question","name":"How many virtual users can JMeter simulate?","acceptedAnswer":{"@type":"Answer","text":"A single JMeter instance simulates hundreds to a few thousand users; distributed testing across machines scales to tens of thousands."}},{"@type":"Question","name":"JMeter versus LoadRunner, what is the difference?","acceptedAnswer":{"@type":"Answer","text":"JMeter is free, open-source, and Java-based, while LoadRunner is commercial with broader protocol support and advanced analysis."}},{"@type":"Question","name":"Can AI analyze JMeter performance test results?","acceptedAnswer":{"@type":"Answer","text":"Yes. AI reads JMeter result graphs, detects anomalies and bottlenecks, and links slow responses to load levels."}},{"@type":"Question","name":"How is AI used in load testing?","acceptedAnswer":{"@type":"Answer","text":"AI generates realistic workload models, auto-tunes thread and ramp-up settings, and predicts capacity from historical data."}}]}],"@id":"https://www.guru99.com/jmeter-performance-testing.html#schema-21927","isPartOf":{"@id":"https://www.guru99.com/jmeter-performance-testing.html#webpage"},"publisher":{"@id":"https://www.guru99.com/#organization"},"inLanguage":"en-US","mainEntityOfPage":{"@id":"https://www.guru99.com/jmeter-performance-testing.html#webpage"}}]}
```
