# Share a Locust Load Test Report — One Link Per Run

Canonical: https://commareports.com/share-locust-report
Published: 2026-08-22

> Locust's --html report is a single self-contained file that dies in a CI artifact zip. Publish it to Comma with one curl: a stable URL, comments on the p95 row, and a revision per run you can diff.

# Share a Locust load test report

A load test result is only useful in comparison. "p95 was 412 ms" means
nothing; "p95 was 412 ms, up from 190 ms on Tuesday" is the entire
finding. Which is why the standard workflow — download `report.html` out
of an artifact zip, open it locally, remember what last week looked like —
loses the one thing the test was run to produce.

Locust's own artifact is good: `--html` writes a single self-contained
file with the statistics tables and charts embedded. It needs a URL and a
history, not a different format.

## Publish it

```bash
locust --headless -u 500 -r 50 -t 5m \
       --host https://staging.example.com \
       --html report.html || true

curl -fsS -X PATCH \
  "https://commareports.com/api/v1/reports/$COMMA_REPORT_ID" \
  -H "Authorization: Bearer $COMMA_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d "$(jq -n --rawfile html report.html \
        --arg title "Load — 500 VU — $(date +%F)" \
        '{title: $title, html: $html}')"
```

`|| true` matters here: a run that trips `--exit-code-on-error` is exactly
the run you want published. `PATCH` on a saved id rather than `POST` gives
you one URL with a revision per run, so
[diffing two runs](/share-html-report) is a click instead of an
archaeology project. Use a [scoped token](/docs/api-tokens) with
`reports:write`.

## What you get

- **Regression, visible.** Revisions in one place mean the week-over-week
  question answers itself.
- **Comments on the numbers.** Highlight the endpoint row and pin the
  context — "this is the N+1 we shipped Thursday" — see
  [commenting on HTML](/comment-on-html).
- **Readers without the CI seat.** SREs, the platform team, the vendor
  whose API you're hammering. [Sharing](/docs/sharing) is per report.
- **Scheduled soak tests.** A [routine](/docs/routines) can refresh a
  report on a cron so the trend keeps building without anyone remembering.

## Limits

- **HTML body: 5 MB** — Locust reports are far under it.
- **Scripts run, sandboxed**: `allow-scripts`, no `allow-same-origin`.
- **60 requests/minute per token.**

## Try it

Comma is free — unlimited reports, unlimited commenters, unlimited
revision history.

**[Create your first report →](https://commareports.com/)**

### Related

- [k6](/share-k6-load-test-report) · [JMeter](/share-jmeter-report) · [Gatling](/share-gatling-report)
- [Lighthouse](/share-lighthouse-report) — the front-end half of performance
- [Scheduled reports](/features/routines/scheduled-html-reports) — soak tests on a cron
