Skip to content

Stress test

A stress test deliberately pushes your system beyond its expected operating range to find the point at which performance degrades or errors start to appear. The goal is not to break the system for its own sake — it is to understand where the limit is and how the system behaves as it approaches that limit.

  • A load test has established baseline behaviour at expected traffic levels.
  • You have authorisation to test the target, and stakeholders know a stress run may cause elevated error rates or temporary unavailability.
  • Preferably run against staging — not production.

A stress test ramps the virtual user count steadily upward, past the number used in a normal load test, until one of the following occurs:

  • Latency climbs past an unacceptable threshold (e.g., p95 > 2 s).
  • Error rate rises above an acceptable ceiling (e.g., > 1 %).
  • The system becomes unresponsive and the run itself starts to fail.

The inflection point — where errors begin to spike — marks the breaking point of the current configuration. Everything up to that point describes the system’s safe operating range.

ParameterValue
Virtual users (VUs)Ramp from baseline to 2×–5× expected peak
Ramp-upSlow and steady — 1–2 VU/s or 5-min stages
Hold duration5–10 min at peak; stop when limits are hit
Stop modeDuration (or stop manually when errors spike)
LocationsSame as your load test for comparison
  1. Duplicate your load-test test file and rename it api-stress (or similar).

  2. Modify the Taurus YAML to use a higher VU target and a gradual ramp:

    execution:
    - executor: jmeter
    concurrency: 500
    ramp-up: 10m
    hold-for: 5m
    scenario: api-stress
    scenarios:
    api-stress:
    requests:
    - url: https://api.staging.example.com/v1/products
    label: list-products

    This ramps from 0 to 500 VUs over 10 minutes — roughly 5× the baseline load-test VU count of 100 — then holds for 5 minutes.

  3. In Load profile, set Virtual users to 500, Ramp-up to 10m, and Duration to 15m (ramp + hold).

  4. Set a Failure criteria threshold to capture the breaking point automatically — for example, error rate > 5 % causes the run to fail and record the moment.

  5. Click Run and watch the Overview tab live. The latency chart will show the inflection clearly.

Open the Overview tab after the run:

  • Latency chart — look for the inflection point where p95 climbs rapidly. The VU count at that point is your effective breaking point.
  • Error rate panel — a step-change from near-zero to a rising error rate pinpoints where the system saturates.
  • Throughput — often plateaus or drops before the error rate climbs, indicating queuing in the application or database.

Record the VU count at the inflection point and compare it against your expected peak load. If the breaking point is below 2× expected peak, your system needs more capacity margin.

DoDon’t
Start from the load-test baseline — only the VU count changesRun a stress test before a smoke and load test
Ramp gradually to observe the degradation curveJump instantly to a high VU count — you miss the inflection
Document the breaking-point VU count for capacity planningDraw conclusions from the peak VU count alone
Run on staging with stakeholder awarenessRun on production without a maintenance window