Skip to content

perf-reporting

perf-reporting generates professional performance reports from raw JMeter, k6, and Gatling output — Apdex scores, SLA checks, percentile charts, and exportable HTML/PDF reports.

TierPrice
Free (CLI + web + Electron desktop, free license key)Free
Pro (CLI, unlimited runs, no watermark)£79 one-time
Enterprise (white-label, custom branding)£799 one-time

Download from martkos-it.co.uk/store/perf-reporting-dashboard. Requires a free license key (emailed on registration) entered on first launch.

Terminal window
npm install -g @martkos-it/perf-reporting
perf-reporting --version

The web version runs at martkos-it.co.uk/tools/perf-reporting — upload a results file and get an interactive report in your browser.

Terminal window
# From k6 JSON output
perf-reporting generate \
--file results.json \
--tool k6 \
--output report.html
# From JMeter JTL
perf-reporting generate \
--file results.jtl \
--tool jmeter \
--output report.html
# From Gatling simulation.log
perf-reporting generate \
--file simulation.log \
--tool gatling \
--output report.html

Define SLA thresholds inline or via perf-ecosystem.yml:

Terminal window
perf-reporting generate \
--file results.json \
--tool k6 \
--sla-p95=1500 \
--sla-p99=3000 \
--sla-error-rate=1.0 \
--sla-apdex=0.85 \
--output report.html

The report shows pass/fail status per threshold with a summary section at the top.

When perf-ecosystem.yml is present, thresholds are picked up automatically:

thresholds:
response_time:
p95_max_ms: 1500
p99_max_ms: 3000
error_rate:
max_percent: 1.0
apdex:
min_score: 0.85
Terminal window
perf-reporting generate \
--file results.json \
--tool k6 \
--push-to-results-db \
--results-db-url http://localhost:4000 \
--results-db-api-key prdb_your_key \
--project-id your-project-uuid \
--output report.html
  • Summary: Apdex score, pass/fail SLA status, test duration, total requests
  • Response time distribution: p50, p75, p90, p95, p99, min, max
  • Throughput: requests/second over time
  • Error analysis: error rate, error types, failed samplers
  • Per-endpoint breakdown: response times and error rates per URL/sampler
  • Charts: timeline charts for response time and throughput
Terminal window
perf-reporting generate --file results.json --tool k6 --format pdf --output report.pdf

Requires Chromium (bundled with the Electron app; on CLI, uses puppeteer headless).

Apdex is calculated using configurable satisfied (T) and frustrated (4T) thresholds:

Terminal window
perf-reporting generate --file results.json --tool k6 --apdex-t=500
# Satisfied: ≤500ms, Tolerating: 500ms–2000ms, Frustrated: >2000ms

Default T = 500ms. Apdex formula: (satisfied + tolerating/2) / total_requests