Stop 14 · Build Your QA PortfolioProjects · 4/7

Performance Testing Report

Part of the QA Testing Roadmap

In short

Running a load test is the easy part. Explaining what the numbers mean and what the team should do next is what makes a performance report worth putting in your portfolio.

A full performance test report on a real or practice application — test plan, execution, results analysis, and a clear recommendation, showcasing Phase 10's skills end to end.

The purple blob jogs on a treadmill with sensors while a doctor watches a heart monitor.

Think of it like this

The treadmill health check-up

A doctor puts you on a treadmill, slowly raises the speed and watches your heart rate. Then she writes one clear line: 'fit up to this level, avoid that'. Your report does the same for an app under load.

Watch it happen

From goal to recommendation

Goal
Script
Run load
Analyse
Recommend

1/5Set a measurable goal, like '95% of product page requests under 800 ms with 50 users'.

The big ideas

What you need to know

Goals first

Without a target, numbers are just numbers. Agree on response time and error-rate goals before testing.

Percentiles, not averages

p95 means 95% of requests were faster than this. Averages hide the slow requests users hate.

Executive summary

Open the report with three lines a manager can read: result, risk, recommendation.

Permission matters

Only load-test systems you own or are allowed to test. A load test can look like an attack.

See it in code

Walk through the code

js
1import http from "k6/http";2import { check, sleep } from "k6";3export const options = {4  stages: [5    { duration: "1m", target: 50 }, // ramp up to 50 virtual users6    { duration: "3m", target: 50 }, // hold7    { duration: "1m", target: 0 },  // ramp down8  ],9  thresholds: { http_req_duration: ["p(95)<800"], http_req_failed: ["rate<0.01"] },10};11 12export default function () {13  const res = http.get("https://staging.example.test/products");14  check(res, { "status is 200": (r) => r.status === 200 });15  sleep(1);16}

1/3The load shape: ramp up, hold steady, ramp down.

Run with k6 run load.js against your own test site. Thresholds turn your goals into a clear pass or fail.

Save yourself the pain

Common mistakes

Oops

Pasting raw tool output and calling it a report.

Do this instead

Add a summary, graphs with labels, a verdict against the goal and clear recommendations.

Oops

Reporting only the average response time.

Do this instead

Report p95 or p99 and the error rate. Averages make a slow system look fine.

Your mission

Mini load test

~45 min

Quick check

Average response time is 300 ms but p95 is 4 seconds. What does that tell you?

Go deeper

  1. 1Design and execute a load test against a practice application using JMeter or k6.
  2. 2Analyze the results, identifying key metrics and any performance concerns.
  3. 3Write a report with a clear executive summary and a specific recommendation.

More projects at this stop

Stuck on this topic? Ask an Insider

Get 1:1 guidance from people who've walked this exact path — on the InsideEdge app.

Download
InsideEdge