Quick Start
This guide takes you from zero to a linted script and a report you can gate a build on — the two most common entry points into the ecosystem.
Prerequisites
Section titled “Prerequisites”- Docker and Docker Compose installed
- A JMeter (
.jmx), k6 (.js), or Gatling (.scala) script to work with
Option A — Lint a script
Section titled “Option A — Lint a script”-
Install perf-lint
Terminal window pip install perf-lint-tool -
Run the linter against your script
Terminal window # JMeterperf-lint check my-test.jmx# k6perf-lint check my-script.js# Gatlingperf-lint check MySimulation.scala -
Review the output
my-test.jmxline 12 WARN [JMX001] Thread group uses "Forever" loop — set a finite loop countline 34 ERROR [JMX010] HTTP sampler missing explicit timeout — default is infiniteline 67 INFO [JMX042] Consider using CSV Data Set Config for parameterisation3 problems (1 error, 1 warning, 1 info)Errors block CI pipelines. Warnings and info are advisory.
-
Fix and re-run
Terminal window perf-lint check my-test.jmx --fixThe
--fixflag auto-corrects rules that support it.
Option B — Report on a run, and catch a regression
Section titled “Option B — Report on a run, and catch a regression”-
Get perf-reporting
Download it from martkos-it.co.uk/store/perf-reporting-dashboard. The desktop app is free with a licence key emailed on registration; the CLI ships inside that download and needs a Pro or Enterprise key.
-
Run your test and export results
Terminal window # k6 — export JSON resultsk6 run --out json=results.json my-script.js# JMeter — export CSV (default listener output)jmeter -n -t my-test.jmx -l results.jtl# Gatling — results are in simulation.log by default -
Generate a report
Terminal window perf-report -i results.json --tool k6 -o report.json --summaryAdd
-f htmlfor something to send to a human, and--fail-on-errorto make the command exit non-zero when the run contained errors. -
Compare against previous runs
Terminal window perf-report compare --baseline 'baselines/*.json' --current report.jsonThis compares runs rather than samples: each report contributes one value per metric, so the question is whether this build’s p95 is worse than recent builds’ p95. Around eight baseline runs are needed before the verdict means much, and the tool says so rather than pretending otherwise.
Option C — Full pipeline in CI
Section titled “Option C — Full pipeline in CI”See the CI/CD Integration guide for a complete GitHub Actions pipeline that:
- Generates test data with dummydatagenpro
- Lints the script with perf-lint
- Runs the test with the perf-containers Docker image
- Generates a report with perf-reporting
- Fails the build on statistical regression (
perf-report compare)
Next Steps
Section titled “Next Steps”- perf-ecosystem.yml — set up shared config once, all tools pick it up
- perf-lint — full rule reference and configuration
- perf-reporting — Apdex, SLA gating, and statistical comparison of two runs