← All projects
Applications & services · Go
LG
loadgun
HTTP load testing — configure RPS, duration and concurrency; the simulator reports nearest-rank percentiles on a live histogram.
Configure the run
Simulates a target: latency ≈ base + queueing under concurrency + noise.
Percentiles use the same nearest-rank rule as the Go code — a p95 is a latency that actually happened.
Requests that error before a response (timeouts) are left out of the latency distribution; a 5xx still has a latency and stays in, matching internal/report.
Results
Requests
—
Succeeded
—
Failed
—
Throughput
—
Received
—
min
—
mean
—
p50
—
p90
—
p95
—
p99
—
max
—
Latency distribution
bucket count
p95 marker
10 equal-width buckets, min→max (same as
Histogram())
$ loadgun -n 500 -c 25 http://localhost:8080/health
Four decisions that make the numbers meaningful
- Percentiles are nearest-rank, not interpolated. p95 is a latency a request actually experienced.
- A request that errors has no latency. Timeouts stay out of the distribution; a 503 is still measured.
- Duration stops new requests; it does not cut in-flight ones.
- The body is drained before the clock stops. Keep-alive measures the server, not the handshake.
Status codes
| Code | Count |
|---|---|
| Run a test | |
Exit code is 1 if anything failed — use it as a one-line CI gate.