Performance testing is the difference between a system that scales gracefully and one that falls over at peak load. JMeter is the most widely-used open-source load testing tool — mature, scriptable, and free. This guide walks through a real test plan: thread groups, assertions, distributed mode, and interpreting the results.
Thread Group anatomy
- Number of Threads = virtual users.
- Ramp-Up Period = time to reach full load.
- Loop Count / Duration = total workload.
- Scheduler = start time, end time.
Samplers, assertions, extractors
- Samplers — HTTP Request, JDBC, FTP, JMS.
- Timers — Constant Throughput Timer (target RPS), Uniform Random, Gaussian.
- Assertions — Response Assertion, Duration Assertion, Size Assertion, JSON Path.
- Extractors — Regular Expression, JSON Extractor, CSS/JQuery, XPath. For correlation.
CLI mode + CI
Distributed mode
For large loads, run one master + multiple slave JMeter instances. One client GUI orchestrates many load generators. Use a separate network segment to avoid the master bottleneck.
What to look for in results
- Throughput — requests per second.
- Latency p50/p95/p99 — the response time distribution. p99 matters more than average for user experience.
- Error rate — % of failed requests under load.
- Server metrics — CPU, memory, GC, I/O wait. Correlate with client-side metrics.
Further reading
Authoritative sources
Related Tutorsbot tutorials
Share: