Configuration
The Dashboard panel for a spec is organized into two side-by-side cards: Virtual Users on the left and Duration on the right. Together they define the VU profile for the currently selected test type.
Virtual Users
A Virtual User (VU) is a simulated client running the spec's entire step sequence in a loop. All VUs run concurrently, each respecting think-time delays between steps.
| Field | Range | Purpose |
|---|---|---|
| VUs | 1 – 5000 | Target number of parallel simulated users during the sustain phase |
| Ramp Up (s) | 0 – 300 | Time to linearly increase active VUs from 0 to the target |
| Ramp Down (s) | 0 – 300 | Time to linearly decrease active VUs from target back to 0 for a graceful shutdown |
| Think Time Min (ms) | 0 – 10000 | Minimum wait a VU inserts between consecutive steps |
| Think Time Max (ms) | 0 – 10000 | Maximum wait; each VU picks a random value between min and max on every hop |
| Request Timeout (s) | 1 – 120 | Per-request timeout; requests exceeding this are recorded as timeout errors |
Random think time is realistic: picking a random value between min and max on each hop prevents a synthetic wave of requests where every VU fires in lockstep. If you want zero delay, set both min and max to 0.
Duration
The Duration card has a Time-based / Iteration-based toggle at the top. The fields below change depending on which mode you pick.
Time-based
VUs keep running the scenario repeatedly until the total duration is up.
- • Duration (s): 1 – 3600
Iteration-based
Each VU runs the scenario a fixed number of times and then stops. The test ends when the last VU finishes.
- • Iterations per VU: 1 – 10000
Ramp vs. duration: in Time-based mode, if rampUp + rampDown exceeds duration, the UI surfaces a red warning and the sustain phase is skipped. The runner still executes ramp-up and ramp-down, but there's no hold period in between.
Rate Limit
Below the Duration fields is a toggle for Rate Limit (req/s). When enabled, the runner paces the aggregate request rate across all VUs so it never exceeds the configured value. VUs wait for available capacity before sending the next request.
Range: 1 – 10000 requests per second
Default: disabled — VUs fire as fast as think-time allows
When to enable: if the target API enforces its own rate limit and you want to stay under it, or if you're benchmarking at a specific throughput (e.g. 500 req/s sustained) rather than a specific VU count.
All Limits at a Glance
Every numeric input is clamped to a hard range — values outside are automatically corrected on blur.
- MAX_VIRTUAL_USERS = 5000
- MAX_DURATION_SECONDS = 3600
- MAX_ITERATIONS = 10000
- MAX_RATE_LIMIT = 10000
- MAX_TIMEOUT_SECONDS = 120