Skip to main content

Reporting

You have the results - now you need to communicate them. The report should be clear enough for both technical and non-technical stakeholders to understand whether the system passed or failed.

Key Metrics to Highlight

Not every metric from the test results belongs in the report. Focus on what stakeholders care about:

MetricWhy it Matters
90th Percentile Response TimeThe most commonly used SLA metric - "90% of users experienced this or better"
Average Response TimeEasy to understand, but always pair with percentiles
Throughput (TPS)Shows system capacity - how much work it processed
Error RateDid the system stay within acceptable failure limits?
Concurrent UsersThe load level during the test
Test DurationHow long the steady state lasted

Report Structure

A practical performance test report structure:

1. Summary / Executive Overview

  • One paragraph: what was tested, how much load, and the overall result (pass/fail)
  • Example: "Login and checkout flows were tested with 300 concurrent users for 30 minutes. The system met all NFR targets with a 90th percentile response time of 1.2 seconds and 0.3% error rate."

2. Test Scope

  • Which flows were tested
  • Which environment (URL, infra details if relevant)
  • Test date and time

3. Load Model

  • Number of concurrent users
  • Ramp-up period
  • Test duration
  • Think time between actions

4. NFR Targets vs Actual Results

This is the core of the report. Present it as a comparison table:

MetricNFR TargetActual ResultStatus
90th Percentile Response Time< 2 sec1.2 secPASS
Throughput>= 100 TPS142 TPSPASS
Error Rate< 1%0.3%PASS
Concurrent Users300300PASS

5. Detailed Results Per Transaction

Break down the results by transaction / flow:

TransactionAvg (ms)90th (ms)95th (ms)Error %Throughput
A - Login45082011000.1%45/s
B - Dashboard3206007800.2%42/s
C - Search580120015000.5%38/s

6. Key Observations

  • Any notable findings - specific transactions that were slower, errors that appeared under peak load, patterns in response time over time
  • Include relevant charts from the JMeter web report (Response Times Over Time, Throughput Over Time)

7. Recommendations (if applicable)

  • If the test failed: what needs to be addressed
  • If the test passed: any areas close to the threshold that should be monitored
  • Suggestions for the next round of testing (higher load, longer duration, additional flows)

Pass/Fail Against NFRs

The pass/fail decision is straightforward - compare results against the NFRs defined in Section 2.

Pass: All metrics are within the defined NFR targets during the steady-state period (exclude the ramp-up phase from the analysis).

Fail: One or more metrics exceed the NFR thresholds. When reporting a failure:

  • Be specific about which metric failed and by how much
  • Identify which transactions contributed to the failure
  • If possible, indicate at what load level the failure started (e.g., "response times exceeded 2 seconds when active users reached 250")

Important: Analyze the steady-state period only. The ramp-up phase will have inconsistent metrics as the load is still building. Focus on the period where all users are active and the load is stable.


What to Present to Stakeholders

Different audiences need different levels of detail:

AudienceWhat They Want
Management / BusinessPass or fail, one-line summary, risk if applicable
Technical Lead / ArchitectNFR comparison table, per-transaction breakdown, bottleneck analysis
Development TeamSpecific slow endpoints, error details, server-side metrics if available
QA TeamFull report including methodology, load model, raw data location

For a quick stakeholder update, the Summary + NFR table is usually enough. Have the detailed report ready for follow-up questions.


Tips

  • Lead with the verdict - don't make stakeholders read through pages of data to find out if the test passed. Put pass/fail at the top

  • Use the JMeter web report charts - screenshots of Response Times Over Time and Throughput are more impactful than tables of numbers

  • Always include the load model - without knowing the test conditions, the numbers are meaningless

  • Keep a consistent format - use the same report structure across all test cycles so results are easy to compare

  • Save everything - keep the .jtl files, .jmx scripts, and generated reports. You'll need them for comparison when running the next test cycle

  • Version your reports - label them clearly (e.g., "Run 1 - Baseline", "Run 2 - After DB optimization") so progress is trackable