JTL to PDF Report Generator

Free Tool
Popular

Turn a JMeter JTL/CSV results file (or an HTML report’s statistics.json) into a professional PDF performance report — per-sampler stats, error breakdowns and SLA checks included.

Reporting

Upload results

Click or drag & drop a file

JMeter .jtl / .csv, or an HTML report's statistics.json

Maximum size: 100 MB

Report details

All optional. Leave blank to let Baseline11 detect the user load from the data.

Any threshold you set is checked per sampler; breaches are highlighted in the preview and in the PDF.

What is the JTL to PDF Report Generator?

The JTL to PDF Report Generator turns raw Apache JMeter results into a professional PDF performance test report. JMeter writes results as a .jtl/.csv file that is hard to share with stakeholders. This tool calculates the key metrics for every sampler, highlights errors and SLA breaches, and puts it all into a document you can send to managers, clients or developers.

How it works

Upload the results file JMeter produced — a raw .jtl/.csv listener output, or the statistics.json / dashboard.js from a generated HTML report. Baseline11 parses it in memory, computes per-sampler statistics (samples, errors, average, min/max, median, P90/P95/P99, throughput, bandwidth) using JMeter’s own percentile estimator and its rolling 20,000-sample statistic window, so the numbers line up with JMeter’s HTML dashboard, ranks the top error types and worst samplers, then renders a PDF with a cover page, table of contents and every table in full. Optional SLA thresholds are evaluated per sampler and breaches are highlighted in both the preview and the PDF. Nothing is stored — the file and the generated report exist only for the duration of the request.

Formula to calculate report metrics

Error % = (Failed Samples ÷ Total Samples) × 100 Average = Σ Elapsed Time ÷ Total Samples Throughput = Total Samples ÷ Active Duration (s) Received KB/s = Σ Received Bytes ÷ Active Duration (s) ÷ 1024 Sent KB/s = Σ Sent Bytes ÷ Active Duration (s) ÷ 1024 Percentile Pq : pos = q × (n + 1) ÷ 100 Pq = V[⌊pos⌋] + (pos − ⌊pos⌋) × (V[⌊pos⌋ + 1] − V[⌊pos⌋])

Where:

  • Elapsed TimeResponse time of one sample, in milliseconds.
  • Active DurationTime from the first sample’s start to the last sample’s end for that sampler (the whole test for the Total row), in seconds.
  • nNumber of samples used for percentiles: the most recent 20,000, the same window JMeter uses.
  • V[k]The k-th smallest response time (1-based) after sorting.
  • qThe percentile to find: 50 (median), 90, 95 or 99.

Example of JTL report metric calculation

A Login sampler recorded 10 samples over an active duration of 5 seconds. One sample failed, and 51,200 bytes were received in total.

Inputs

  • Sorted response times (ms): 120, 150, 180, 200, 220, 250, 300, 350, 400, 900
  • Failed samples = 1, Total samples = 10
  • Active duration = 5 seconds, Received bytes = 51,200

Step-by-step

  1. Error % = (1 ÷ 10) × 100 = 10%
  2. Average = 3070 ÷ 10 = 307 ms
  3. Throughput = 10 ÷ 5 = 2 requests/second
  4. Received KB/s = 51200 ÷ 5 ÷ 1024 = 10 KB/s
  5. Median: pos = 50 × 11 ÷ 100 = 5.5 → 220 + 0.5 × (250 − 220) = 235 ms
  6. P90: pos = 90 × 11 ÷ 100 = 9.9 → 400 + 0.9 × (900 − 400) = 850 ms

Result: The Login row reads 10% errors, 307 ms average, 235 ms median, 850 ms P90, 2/s throughput and 10 KB/s received, the same values JMeter’s HTML dashboard shows.

Common mistakes to avoid

  • Uploading the JMeter .jmx test plan instead of the results file — this tool needs the output (.jtl/.csv) that a listener wrote, not the plan itself.

  • Expecting a saved report history — the tool is stateless by design, so download the PDF before leaving the page.

  • Leaving the user load blank when your .jtl has no thread data — set the override so the report titles show the load you actually ran.

  • Entering SLA thresholds in milliseconds — response-time thresholds are in seconds (use 1.5 for 1500 ms).


Need advanced performance testing?

Run this scenario at real scale with Baseline11's distributed load testing platform.

Explore Baseline11