Skip to content

features results and reporting

Douwe de Vries edited this page Jul 1, 2026 · 1 revision

Results and reporting

Active contributors: Douwe de Vries

Purpose

Results and reporting turn a running k6 process into live UI feedback, a final result, and an exportable HTML report. The runtime gathers live metrics in src-tauri/src/k6/process/live_metrics.rs, parses final summary output in src-tauri/src/k6/summary.rs, and renders reports in src-tauri/src/k6/report.rs.

Directory layout

src/features/test/useTestHarness.ts
src/app/components/LiveRunMonitorCard.tsx
src/app/components/LatestResultCard.tsx
src-tauri/src/k6/process/live_metrics.rs
src-tauri/src/k6/summary.rs
src-tauri/src/k6/summary_format.rs
src-tauri/src/k6/report.rs

Key abstractions

Abstraction File Description
LiveMetrics src/lib/loadrift/types.ts, src-tauri/src/models.rs Active VUs, request counts, error rate, latency, and throughput
LiveMetricsAggregator src-tauri/src/k6/process/live_metrics.rs Reads k6 JSON metric lines and computes live snapshots
TestResult src/lib/loadrift/types.ts, src-tauri/src/models.rs Final status, metrics, and threshold results
TestCompletion src/lib/loadrift/types.ts, src-tauri/src/models.rs Terminal event payload emitted after process completion

How it works

graph LR
    K6[k6 process] --> Output[stdout and stderr]
    K6 --> Metrics[metrics.json lines]
    K6 --> Summary[summary.json]
    Output --> Events[k6:output]
    Metrics --> Aggregator[LiveMetricsAggregator]
    Aggregator --> MetricsEvent[k6:metrics]
    Summary --> Parser[parse_summary]
    Parser --> Complete[k6:complete]
    Complete --> Report[HTML export]
Loading

src-tauri/src/k6/process/runtime.rs starts output forwarders for stdout and stderr, starts a metrics forwarder for JSON metric output, waits for k6 to exit, then parses summary.json. If the summary is missing or unsupported, the runtime builds a final result from the latest live metrics and records a summary issue.

src-tauri/src/k6/report.rs writes the latest result as an HTML document with overview cards, threshold rows, structured metrics, raw summary JSON, and the final console summary.

Integration points

The frontend run hook in src/features/test/useTestHarness.ts listens for k6:output, k6:metrics, k6:complete, and k6:error. Event details are documented in Events, and process behavior is documented in k6 runtime.

Entry points for modification

Change live metric aggregation in src-tauri/src/k6/process/live_metrics.rs. Change final summary parsing in src-tauri/src/k6/summary.rs. Change report HTML in src-tauri/src/k6/report.rs.

Key source files

File Purpose
src/features/test/useTestHarness.ts Frontend run state and event listeners
src-tauri/src/k6/process/live_metrics.rs Live metric aggregation
src-tauri/src/k6/summary.rs Final summary parsing and fallback result creation
src-tauri/src/k6/summary_format.rs k6 summary normalization helpers
src-tauri/src/k6/report.rs HTML report export

Clone this wiki locally