Quickstart
Run the built-in demo, then a one-line smoke test against a real URL. No configuration file and nothing to stand up.
The fastest way to see what LoadWave does is to let it test something it starts itself.
The demo
loadwave demoThat starts a small HTTP server in the same process — a few endpoints of differing speed with a sprinkling of errors — runs a two-scenario test against it, and serves the dashboard on localhost:8088. Nothing to configure, no service to point at.
loadwave demo # runs for 10 minutes; Ctrl-C to stop early
loadwave demo --duration 2m --vus 50
loadwave demo --headless # no dashboard, just the reportThe demo target is a toy. Its numbers say nothing about your hardware or your network — it is there to show you the dashboard and to prove a fresh build works end to end.
Open the dashboard and you get live charts for virtual users, throughput, response time and responses by status class, a per-endpoint breakdown, threshold verdicts, agent health, an event log, and a Failed requests panel. Reading the dashboard walks through it.
A smoke test against a real URL
No configuration file needed. When a run has no scenarios anywhere — none in YAML, none compiled in — but a base URL is set, LoadWave synthesises a single GET of that URL's path:
loadwave run --url https://example.com/health --vus 50 --duration 30sAdd --ui to watch it, or leave it off to get a report and an exit code.
Fifty virtual users here produce roughly fifty requests a second, not
thousands. LoadWave pauses one second after every request by default, which is
a deliberate safety floor rather than an oversight — see
betweenRequests. Pass
--between-requests 0 when flat out is the point.
Turning that into a throughput test
loadwave run --url https://example.com/health \
--vus 200 --duration 1m --between-requests 0Reading the report
Whatever you run, the report at the end looks like this:
────────────────────────────────────────────────────────────────────────────── storefront — completed 30s to 100 VUs, then 5m0s to 100 VUs, then 30s to 0 VUs ran for 6m0s across 1 agent ────────────────────────────────────────────────────────────────────────────── METRIC VALUE requests 184,209 throughput 512/s duration p95 46.3ms failed requests 2,931 (1.59%) checks passed 181,278 of 184,209 REQUEST COUNT AVG P95 P99 MAX ERRORS view product 92,104 30.3ms 48.6ms 50.4ms 91.2ms 3.18% list products 92,105 15.1ms 24.7ms 25.5ms 62.1ms 0% THRESHOLD ACTUAL RESULT http_req_duration p95 < 500 46.34 pass http_req_failed rate < 0.01 0.0159 FAIL
Exit code 2 — a threshold was breached. In a pipeline, that just caught a
regression. The exit-code contract is the part
worth knowing before you wire this into CI.