Thread Groups, Samplers & Config Elements
Thread Group — Simulating Users
Defines the pool of virtual users: number of threads, ramp-up period (time to start them all — 100 threads over 50s ≈ 2/sec, avoiding an unrealistic instant spike), and loop count (how many times each thread repeats the sequence; "infinite" runs until manually stopped or a duration limit is hit — for soak testing).
Samplers — Sending Requests
HTTP Request is the most common sampler; JMeter also supports FTP, JDBC, SOAP/XML-RPC, TCP, and more — a general-purpose load testing tool, not web-only.
Config Elements — Shared Setup
HTTP Request Defaults sets a shared hostname/port once instead of repeating it on every sampler. CSV Data Set Config feeds a different row of real, varied data (usernames, search terms) per iteration — using identical hardcoded data on every virtual user produces unrealistically-cached, non-representative results.
Timers — Realistic Think Time
Adds a configurable delay between requests, simulating the pause a real user takes between actions — without it, a test fires requests unrealistically faster than real traffic ever would.
Controllers vs. Samplers
Logic Controllers (Simple, Interleave, Loop) organize execution flow/order of samplers — grouping or alternating requests — without themselves sending anything, distinct from Samplers which actually generate requests.
Keep your own version of these notes — editable, searchable, and organised by your stack.
Start free