Stop 10 · Performance TestingTopics · 3/8

JMeter Fundamentals

Part of the QA Testing Roadmap

In short

Apache JMeter is free, open source and has been around for over two decades. You build a test plan in a GUI, then it fires hundreds of virtual users at your app.

A widely used open-source performance testing tool — building test plans that simulate many concurrent virtual users hitting an application, and measuring how it holds up.

The purple blob with a clipboard and stopwatch directs a marching line of tiny robot helpers towards a shop door.

Think of it like this

An army of identical helpers

Imagine 500 identical helpers, each told: walk to the shop, ask for the price, note how long it took, repeat. You're the supervisor with the clipboard. JMeter's thread group is that army, and each thread is one helper.

Watch it happen

Inside a JMeter test plan

Test Plan
Thread Group
CSV Data Set
HTTP Request
Response Assert
Summary Report

1/5The test plan is the root. Everything else sits inside it.

The big ideas

What you need to know

Threads are users

Number of threads is virtual users. Ramp-up is how many seconds it takes to start them all.

Samplers send requests

HTTP Request is the main sampler. Others exist for JDBC, FTP and more.

Assertions catch wrong answers

A fast response with an error page is still a failure. Assert on status and content.

GUI to build, CLI to run

Build and debug in the GUI. Run real load from the command line, which uses far less memory.

See it in code

Walk through the code

bash
1# Run a saved test plan in non-GUI mode2jmeter -n -t checkout.jmx -l results.jtl3 4# Same run, plus an HTML dashboard report5jmeter -n -t checkout.jmx -l results.jtl -e -o report/6 7# Pass the user count in as a property8jmeter -n -t checkout.jmx -Jusers=200 -l results.jtl

1/3-n means no GUI, -t is the test plan, -l is where raw results go.

In the plan, read the property with ${__P(users,10)} in the thread count field. Open report/index.html after the run.

Save yourself the pain

Common mistakes

Oops

Running a big load test from the JMeter GUI with listeners showing every result live.

Do this instead

Run in non-GUI mode and generate the report afterwards. The GUI eats memory and skews results.

Oops

Firing all 500 threads in one second with no ramp-up.

Do this instead

Use a sensible ramp-up unless you're deliberately testing a spike.

Your mission

Build a tiny JMeter plan

~40 min

Quick check

Why run real JMeter load tests in non-GUI mode?

Go deeper

  1. 1Set up JMeter and build a basic test plan simulating multiple users hitting a sample endpoint.
  2. 2Learn JMeter's core components: thread groups, samplers, and listeners.
  3. 3Practice running a small load test and reviewing the resulting response time data.

More topics at this stop

Stuck on this topic? Ask an Insider

Get 1:1 guidance from people who've walked this exact path — on the InsideEdge app.

Download
InsideEdge