Skip to content

Performance Testing — Goals & Types

Why We Do It

Performance testing is not about proving the system is fast. It is about understanding how the system behaves when it's actually used.

Goal What It Answers
Measure system capacity How many users / RPS can we handle before degradation?
Identify bottlenecks What breaks first — DB, CPU, network, application logic?
Validate SLAs / SLOs Do we meet the contractual and internal performance targets?
Understand behavior under load How does latency change as load increases?

Types of Performance Tests

Load Testing

Simulates expected production load. The goal is to confirm the system behaves normally at the traffic levels it is designed to handle.

Users: normal peak → sustained for 30–60 min
Goal:  stable RPS, latency within SLO, error rate < 1%

Stress Testing

Pushes the system beyond its designed limits to find where and how it breaks.

Users: ramp up until failure
Goal:  find the breaking point, observe degradation pattern

A well-designed system degrades gracefully — latency increases, but it doesn't crash or corrupt data.


Spike Testing

Applies a sudden, sharp increase in load to simulate real-world events: flash sales, viral posts, product launches.

Users: 10 → 1000 in 10 seconds → back to 10
Goal:  recovery time, error behavior at peak

Soak Testing

Runs sustained load for an extended period (hours or days) to detect slow degradation: memory leaks, connection pool exhaustion, log file growth.

Users: constant moderate load for 8–24 hours
Goal:  stable memory, no latency drift over time

Scalability Testing

Measures how the system responds to adding resources (more servers, more DB replicas).

Pattern: test at 1 node → 2 nodes → 4 nodes
Goal:    linear throughput increase, or identify bottleneck that prevents scaling

Choosing the Right Test

Trigger Test Type
Pre-deploy validation Load
Capacity planning Stress + Scalability
Event-driven traffic (sale, launch) Spike
Long-running service concern Soak
Infrastructure decision Scalability