Skip to content

Breakpoint / capacity test

A breakpoint test (also called a capacity test) is a methodical, step-by-step ramp that continues until the system breaks — either through unacceptable latency, rising errors, or complete failure. Unlike a stress test (which uses a smooth ramp), a breakpoint test uses discrete, held stages so the system stabilises at each level before the next step is applied.

  • Your system passes a load test at expected peak.
  • You have explicit authorisation to push the target to failure. Alert ops and stakeholders before starting.
  • Run against an isolated staging environment — not production.

A breakpoint test increases load in fixed stages — for example, 100 VUs → 200 VUs → 400 VUs → 800 VUs — with a hold period at each stage (5–10 min) to let the system reach a new steady state. The test continues until:

  1. Latency crosses your hard SLO threshold (e.g., p95 > 2 s), or
  2. Error rate rises above your failure budget (e.g., > 2 %), or
  3. The system becomes unreachable.

The VU count at the last stable stage is your capacity ceiling. The stage where failure begins is the breakpoint.

This information drives capacity planning: if your ceiling is 800 VUs and your peak traffic demand is expected to be 600 VUs, you have a 33 % headroom margin. If the ceiling is 450 VUs against a 600 VU demand, you need to scale out before the next traffic event.

ParameterValue
Stage steps2× each step (100 → 200 → 400 → 800)
Hold per stage5–10 min
Total duration4–6 stages × hold time
Stop modeDuration (or manual when failure observed)
LocationsSingle location for isolation

Use a Taurus YAML with explicit concurrency stages:

execution:
- executor: jmeter
concurrency:
- const: 100
duration: 8m
- const: 200
duration: 8m
- const: 400
duration: 8m
- const: 800
duration: 8m
scenario: capacity-check
scenarios:
capacity-check:
requests:
- url: https://api.staging.example.com/v1/products
label: list-products
- url: https://api.staging.example.com/v1/checkout
label: checkout
method: POST
body: '{"cartId":"cart-{{__Random(1,1000)}}"}'
  1. Upload the YAML and set Duration to cover all stages (32m for four 8-minute stages).
  2. Set a Failure criteria — for example, error rate > 5 % — so the run is automatically marked failed at the breakpoint. This creates a clean record of when the ceiling was hit.
  3. Start the run and monitor the Overview tab live. The step pattern will be visible in the throughput and latency charts.

Open the Overview tab:

  • Throughput (RPS) — should increase at each stage. If throughput plateaus or falls while VUs continue to climb, the system has hit a queue or resource ceiling.
  • p95 latency — watch for the stage where p95 climbs significantly and does not recover during the hold period. That is the breakpoint stage.
  • Error rate — the stage where error rate first rises above zero is usually the true breakpoint, even if latency is still acceptable.

Record the VU count of the last stable stage as your verified capacity ceiling. Share this number with your infrastructure and product teams for capacity planning.

DoDon’t
Hold each stage long enough to reach steady state (≥ 5 min)Ramp continuously — you lose the ability to identify stable stages
Double VU count per stage for logarithmic coverageUse very small steps (e.g., +10 VUs) — it takes too long
Set failure criteria to auto-record the breakpointManually watch the run hoping to catch the exact failure moment
Document the ceiling VU count for capacity planningRun a breakpoint test right before a production event
Run on an isolated environmentRun on a shared staging environment with other tests in progress