Performance Testing
Performance Testing Explained: Load, Response Time, and Reliability
Learn what performance testing measures in plain words — speed, capacity, errors, and resource use — and how to plan a realistic, safe first test.
- Published
- Reading time
- 6 min read
- Difficulty
- Beginner
- Audience
- For QA engineer, Automation tester, Developer, Product manager
Article overview
What you will learn
- What performance testing actually measures
- How load, stress, spike, and endurance tests differ
- How to model demand that resembles real users
- Why averages mislead and percentiles help
- How to run tests safely and read the results
Before you begin
Prerequisites
- Some idea of how websites talk to servers is helpful, but not required
Performance testing in plain words
Think of a restaurant. A functional test asks: if I order the pasta, do I get the pasta? A performance test asks: if two hundred people order at once on a Friday night, does the kitchen still deliver food in a reasonable time — or does everything slow to a crawl, and do some orders quietly get lost?
Software behaves the same way. Almost everything is fast with one user. Problems appear when demand rises: queues form, memory fills up, database connections run out, and a page that took half a second starts taking eleven.
Why it matters
Slowness costs money quietly. People abandon slow checkouts, slow search, and slow forms without telling anyone why. And the moments that matter most — a product launch, a sale, payday, an exam-results morning — are precisely the moments when demand spikes. Finding your limits deliberately, in a test, is much cheaper than discovering them during your busiest hour.
Key terms, made simple
| Term | What it means | Everyday comparison |
|---|---|---|
| Response time | How long one action takes | How long from ordering to food arriving |
| Throughput | How much work finishes per second or minute | Meals served per hour |
| Virtual user | A simulated person the tool pretends to be | An actor hired to fill the restaurant |
| Percentile (p95) | The experience of the slowest 5%, not the typical one | "Almost everyone waited under 20 minutes" |
| Bottleneck | The one slowest part that limits everything else | One oven for the whole menu |
| Baseline | A recorded earlier result you compare against | Last month's timings, for reference |
The four things worth measuring
| Measurement | What it tells you | The trap |
|---|---|---|
| Response time | How long an operation takes | Averages hide the slow tail — use percentiles |
| Throughput | How much work completes in a period | High throughput is worthless if the answers are wrong |
| Error rate | How often requests or journeys fail | Count timeouts and wrong answers, not just error codes |
| Resource use | CPU, memory, connections, disk on the servers | A healthy-looking client can hide a server at its limit |
The main kinds of performance test
- A load test checks behaviour at expected and peak demand — your normal busy day.
- A stress test keeps pushing past that to find where it breaks, and how gracefully.
- A spike test applies a sudden surge, like a marketing email going out at 9am.
- An endurance test runs for hours to reveal slow leaks and gradual decay.
- A capacity test estimates how much a given setup can support, to plan for growth.
Example: is search fast enough?
- Write the question down: can search stay under two seconds for 95% of users at our expected peak?
- Model realistic behaviour — a mix of search terms, paging, pauses for reading, signed-in and signed-out users.
- Decide whether caches should be warm; match whatever production really does.
- Ramp the demand up gradually rather than all at once.
- Collect both sides: what the user experiences and what the servers are doing.
- Check that the responses were actually correct, not just fast.
- Compare against the baseline, then investigate the first resource that ran out.
Your first week
- Pick one operation that matters and that people already complain about.
- Find out what "fast enough" means to the business, as a number, agreed in writing.
- Measure it once with a single user. That is your baseline.
- Get permission, and confirm which environment you may load and when.
- Run a small load test — a fraction of peak — and check nothing catches fire.
- Increase demand in steps until a measurement degrades, and note where.
- Write one page: the question, the setup, the numbers, and what you would do next.
Run performance tests safely
A production-like environment gives better answers, but it will still differ in data volume, network path, scaling rules, and connected services. Write those differences down so your conclusion stays honest.
Common mistakes
- Sending a request pattern no real user would produce
- Reporting only the average response time
- Ignoring failed or incorrect responses because the timings looked good
- Changing several settings at once, so you cannot tell what helped
- Generating load from a laptop too small to produce it
- Testing third-party services without permission
- Treating one good run as proof for all time
Key takeaways
- Start from a business question, not from a tool.
- Model demand that resembles real behaviour, or the numbers mean nothing.
- Measure speed, volume, failures, and server resources together.
- Percentiles describe real experience; averages hide it.
- Results describe the conditions you tested — say so plainly in the report.
Frequently asked questions
Is performance testing only for big websites?
No. A small service can still have one slow operation, a tight resource limit, or one busy hour a month. Match the depth of testing to the risk, not to the size of the company.
Does a fast API mean the page feels fast?
No. Images, JavaScript, fonts, rendering, and the user's own network all affect what a person experiences. Test at the level that answers your actual question, and ideally at both.
How many virtual users should I use?
Derive it from reality — traffic analytics, expected peak, or a business forecast. A number chosen because it sounds impressive produces an impressive-looking result that means nothing.
When should we run performance tests?
Before big launches and seasonal peaks at minimum, plus a small recurring check on your critical operations so you notice gradual slowdowns while they are still small.
References and further reading
- Load testing websitesGrafana k6 documentation · Verified 2026-07-19
- Apache JMeter user manualApache JMeter · Verified 2026-07-19
