Load test results not saved or parsed for the CI gate in CI
A load-test job can pass without actually gating anything if results are never written or the parsing step cannot read them. The run "succeeds" only because no threshold was evaluated, which defeats the purpose of the test in CI.
What this error means
The gate step reports a missing JTL/JSON file, an empty summary, or the job goes green despite obvious failures because nothing parsed the output.
# JMeter
jmeter.util.JMeterError: Results file results.jtl not found for report generation
# k6
open summary.json: no such file or directoryCommon causes
No output file was written
The run did not pass -l results.jtl (JMeter) or export a summary (k6), so the parsing step has nothing to read.
The gate uses thresholds, not post-hoc parsing
Relying on a separate parse step is fragile; the reliable gate is the tool's own non-zero exit on a failed threshold.
How to fix it
Write results and let the tool gate on exit code
- Save output explicitly (JTL for JMeter, summary export for k6).
- Prefer the tool's built-in threshold/assertion exit code as the gate.
- Only parse the file for reporting, not as the pass/fail source of truth.
# k6 gates on thresholds (exit 99) AND saves a summary
k6 run --summary-export=summary.json script.jsGenerate a report from a saved JTL
For JMeter, save the JTL then build the HTML report from it as an artifact.
jmeter -n -t plan.jmx -l results.jtl -e -o report/How to prevent it
- Always write results to a file, and upload it as an artifact.
- Gate on the tool's own threshold exit code, not a fragile parse step.
- Fail the job if the expected results file is missing.