type: report files are generated output — not hand-authored. This page documents the MMT YAML schema written by testlight and the VS Code export.
type:reportkind:functional|loadname:string — source file or run titleoverview:object — run summary (shape depends onkind)cancelled:boolean (optional) — set when the run was stopped early
Used for test and suite runs. Top-level checks lists suite and test entries.
overview:started_at:ISO timestampfinished_at:ISO timestamp (optional)duration:string (e.g.1.234s)checks:number — total check/assert stepspassed:numberfailed:numbererrors:number (always0in current output)skipped:number (always0in current output)
checks:array of check entries
Each item in checks:
name:stringtype:suite|testfile:string (optional) — source.mmtpathduration:string (optional)result:passed|failedchecks:array (optional) — nested step entries; omitted fortype: suite
Suite entries are status-only rows and are not expandable in the report panel or exported HTML.
name:string — check or assert titletype:checkstep:assert|debug(optional; omitted forchecksteps)duration:string (optional)result:passed|failedexpects:array (optional) — per-comparison resultscomparison:stringresult:passed|failedactual:any (on failure)expected:any (on failure)
failure:object (optional, on failed steps)message:stringactual:stringexpected:stringoperator:string
type: report
kind: functional
name: suite.mmt
overview:
started_at: "2026-03-06T10:30:00.000Z"
finished_at: "2026-03-06T10:30:01.234Z"
duration: 1.234s
checks: 4
passed: 3
failed: 1
errors: 0
skipped: 0
checks:
- name: nested-suite.mmt
type: suite
result: passed
- name: test-file.mmt
type: test
file: test-file.mmt
duration: 0.500s
result: failed
checks:
- name: status == 200
type: check
result: passed
duration: 0.100s
- name: result.name == John
type: check
result: failed
duration: 0.050s
failure:
message: "result.name ==: expected John got Jane"
actual: Jane
expected: John
operator: "result.name =="Used for load test runs. Load metrics are stored at the report root — not under a nested load element — and load reports do not include per-iteration checks.
overview:merges timing with load summary fields:started_at:/finished_at:/duration:(same as functional)iterations:numberrequests:numbersuccesses:/failures:numbersuccess_rate:/failed_rate:/error_rate:number (0–1)throughput:number (requests per second)data_received:/data_sent:number (optional, bytes)errors:/skipped:number (always0in current output)
test:string — path to the underlyingtype: testfileconfig:objectthreads:numberrepeat:string | numberrampup:string
latency:object (milliseconds)min:/avg:/med:/max:/p90:/p95:/p99:number
http:object (optional)status_codes:record<string, number>failed_requests:numberconnect_avg:/send_avg:/waiting_avg:/receive_avg:number (optional)
thresholds:array (optional)name:stringexpression:string (optional)actual:number (optional)result:passed|failed
errors:array (optional) — aggregated error messagesmessage:stringcount:numberrate:number (optional)
snapshots:array — per-second samplesat:number — elapsed seconds from run start, starting at0active_threads:/requests:/errors:/error_delta:/throughput:/response_time:/error_rate:/p95:number (optional)
type: report
kind: load
name: Login Load Test
overview:
started_at: "2026-05-04T10:30:00.000Z"
finished_at: "2026-05-04T10:31:00.000Z"
duration: 1m
iterations: 1000
requests: 3000
successes: 2995
failures: 5
success_rate: 0.998
failed_rate: 0.002
error_rate: 0.002
throughput: 50.0
errors: 0
skipped: 0
test: ./tests/login.mmt
config:
threads: 100
repeat: 1m
rampup: 10s
latency:
min: 12
avg: 48.2
med: 41
max: 880
p90: 92
p95: 120
p99: 310
http:
status_codes:
"200": 2995
"500": 5
failed_requests: 5
thresholds:
- name: p95 latency
expression: p95 < 200
actual: 120
result: passed
errors:
- message: HTTP 500
count: 5
rate: 0.005
snapshots:
- at: 0
active_threads: 20
requests: 500
errors: 0
throughput: 50
response_time: 48.2
p95: 110The MMT schema above is the canonical source. Other formats are projections:
| Format | Notes |
|---|---|
| HTML | Self-contained page with overview cards, suite/test rows, load charts |
| Markdown | Compact ## Tests section; load reports add Mermaid charts and snapshot tables |
| JUnit | Standard <testsuites>/<testcase> output; load metrics as <property> values such as load.threads, load.throughput, load.latency.p95, load.snapshots.0.at |
See also: Overview · CLI · Suite exports · Load test exports