perf-reporting
perf-reporting generates professional performance reports from raw JMeter, k6, and Gatling output — Apdex scores, SLA checks, percentile charts, and exportable HTML reports.
| Tier | Price |
|---|---|
| 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 |
Installation
Section titled “Installation”Desktop App (Windows / Linux)
Section titled “Desktop App (Windows / Linux)”Download from martkos-it.co.uk/store/perf-reporting-dashboard. Requires a free license key (emailed on registration) entered on first launch.
CLI (Pro / Enterprise)
Section titled “CLI (Pro / Enterprise)”There is no npm package — this page used to say npm install -g @martkos-it/perf-reporting, and that package has never existed. The CLI ships inside
the desktop download: the AppImage carries it, and a Pro or Enterprise licence key unlocks
it. A free key is refused with exit code 4, which is deliberate — CI/CD gating is the paid
capability.
perf-report -i results.jtl -o report.json --summary --fail-on-errorThe report view
Section titled “The report view”The desktop app is the report view: it opens a results file and renders the charts,
Apdex and SLA checks locally. There is no hosted version — this page used to link
martkos-it.co.uk/tools/perf-reporting, which has never existed. The site’s SPA fallback
answered that URL with the homepage and a 200, so the link looked alive.
Generating a Report
Section titled “Generating a Report”# From k6 JSON outputperf-report \ -i results.json \ --tool k6 \ -o report.html
# From JMeter JTLperf-report \ -i results.jtl \ --tool jmeter \ -o report.html
# From Gatling simulation.logperf-report \ -i simulation.log \ --tool gatling \ -o report.htmlSLA Thresholds
Section titled “SLA Thresholds”Define SLA thresholds inline or via perf-ecosystem.yml:
perf-report \ -i results.json \ --tool k6 \ --sla-p95=1500 \ --sla-p99=3000 \ --sla-error-rate=1.0 \ --sla-apdex=0.85 \ -o report.htmlThe report shows pass/fail status per threshold with a summary section at the top.
perf-ecosystem.yml
Section titled “perf-ecosystem.yml”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.85Report Contents
Section titled “Report Contents”- 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
PDF Export
Section titled “PDF Export”perf-report -i results.json --tool k6 -f html -o report.htmlRequires Chromium (bundled with the Electron app; on CLI, uses puppeteer headless).
Apdex Score
Section titled “Apdex Score”Apdex is calculated using configurable satisfied (T) and frustrated (4T) thresholds:
perf-report -i results.json --tool k6 --apdex-t=500# Satisfied: ≤500ms, Tolerating: 500ms–2000ms, Frustrated: >2000msDefault T = 500ms. Apdex formula: (satisfied + tolerating/2) / total_requests
Comparing runs — regression detection
Section titled “Comparing runs — regression detection”perf-compare was folded into this product; the statistics live here now.
perf-report compare --baseline 'baselines/*.json' --current report.json--baseline and --current each take a file, a directory or a glob, and may be repeated.
--alpha sets the significance level (0.05 by default), --strict treats any regression
as a failure, and --json gives machine-readable output for a pipeline.
It compares runs, not samples: each report contributes one value per metric, so the question it answers is whether this build’s p95 is worse than recent builds’ p95. Around eight runs are needed before the verdict is reliable, and that caveat reaches the exit code as well as the text rather than being buried in a footnote.
Licence
Section titled “Licence”perf-report activate <key>perf-report statusperf-report deactivateThe CLI is Pro and Enterprise only: a free key is refused with exit code 4. The desktop app and the web view are the free surfaces.