---
title: "end-of-run summary report for a load scenario run"
method: GET
path: "/mockserver/loadScenario/{name}/report"
tags: ["loadgen"]
---

# end-of-run summary report for a load scenario run

`GET /mockserver/loadScenario/{name}/report`

## Request

- Base URL: `http://localhost:1080`
- URL: `http://localhost:1080/mockserver/loadScenario/{name}/report`
- Auth: none declared

Returns an end-of-run summary report derived from the run's status snapshot — the live snapshot while running, or the retained terminal snapshot once finished. The default JSON form carries counts, latency percentiles, the threshold verdict and per-threshold results. With ?format=junit the same data is rendered as a JUnit-XML <testsuite> (one <testcase> per threshold, a <failure> per breach, plus a "run completed" testcase) so CI consumers render per-threshold pass/fail. 404 if the scenario never ran.

## Response `200`

report returned

- LoadScenarioReport: end-of-run summary report for a load scenario run (JSON form). A JUnit-XML rendering of the same data is returned instead when the report endpoint is called with ?format=junit (Content-Type application/xml).
  - `scenario` string
  - `runId` string
  - `state` 'LOADED' | 'PENDING' | 'RUNNING' | 'COMPLETED' | 'STOPPED'
  - `verdict` 'PASS' | 'FAIL': in-run threshold verdict; absent when the scenario has no thresholds or none has been evaluated yet
  - `abortedByThreshold` boolean: true when this run was terminated early by an abortOnFail threshold breach
  - `timing` object
    - `startedAtEpochMillis` integer
    - `endedAtEpochMillis` integer, nullable: epoch-millis the run ended; null while still running
    - `durationMillis` integer: elapsed run time in milliseconds
  - `counts` object
    - `requestsSent` integer
    - `succeeded` integer
    - `failed` integer
    - `droppedIterations` integer
    - `errorRate` number: failed / max(1, requestsSent)
  - `latencyMillis` object
    - `p50` integer
    - `p95` integer
    - `p99` integer
    - `p999` integer
  - `thresholdResults` object[]: per-threshold results behind the verdict
    - `metric` 'LATENCY_P50' | 'LATENCY_P95' | 'LATENCY_P99' | 'LATENCY_P999' | 'ERROR_RATE' | 'THROUGHPUT_RPS' | 'CHECK_FAILURE_RATE'
    - `comparator` 'LESS_THAN' | 'LESS_THAN_OR_EQUAL' | 'GREATER_THAN' | 'GREATER_THAN_OR_EQUAL'
    - `threshold` number
    - `observed` number
    - `satisfied` boolean
  - `checkResults` LoadCheckResult[]: per-distinct-check pass/fail aggregates for the run's per-step response checks
    - `step` string: the step label (step name or index) the check ran on
    - `source` 'STATUS' | 'HEADER' | 'BODY_JSONPATH'
    - `detail` string: the header name (HEADER) or JSONPath (BODY_JSONPATH); absent for STATUS
    - `comparator` 'EQUALS' | 'NOT_EQUALS' | 'CONTAINS' | 'MATCHES' | 'GT' | 'LT' | 'GTE' | 'LTE'
    - `value` string: the expected comparand value
    - `passed` integer
    - `failed` integer

## Other responses

- `404`: no load scenario run for that name

---

[API](https://skmtc.dev/mock-server/apis/mockserver-api.md) · [All operations](https://skmtc.dev/mock-server/apis/mockserver-api/llms.txt) · [OpenAPI document](https://skmtc.dev/mock-server/apis/mockserver-api/revisions/9239b693996e?raw)
