Skip to content

Staged ramp profile

Problem: A single ramp-up to a peak VU count does not tell you much about capacity boundaries. A staged ramp holds each level long enough to show whether the system has stabilised, then pushes to the next level. The breaking point, if there is one, shows up clearly in the charts.

Test type: Stress test or Load test.

Taurus supports staged ramps via the stages property in the execution block:

execution:
- scenario: checkout
stages:
# Warm-up: reach 50 VUs over 3 minutes
- duration: 3m
target: 50
# Sustain: hold 50 VUs for 10 minutes
- duration: 10m
target: 50
# Step up: ramp to 150 VUs over 5 minutes
- duration: 5m
target: 150
# Hold: sustain 150 VUs for 10 minutes
- duration: 10m
target: 150
# Peak: push to 300 VUs over 5 minutes
- duration: 5m
target: 300
# Hold peak
- duration: 10m
target: 300
# Cool-down
- duration: 3m
target: 0
scenarios:
checkout:
requests:
- label: POST /checkout
url: https://api.example.com/checkout
method: POST
headers:
Content-Type: application/json
Authorization: Bearer ${API_TOKEN}
body: '{"cart_id": "cart-test-01"}'
  1. Go to Tests → New test in the MaxoPerf console.
  2. Upload the YAML as the entrypoint under the Files tab.
  3. Bind API_TOKEN under Settings → Secrets.
  4. Click Run now.

As each stage progresses, watch:

  • VU count: confirm it tracks the target at each stage boundary.
  • p95 latency: check whether it settles at each hold level or keeps climbing.
  • Error rate: errors that appear during a hold level point to capacity pressure at that load.
  • Throughput (RPS): in a healthy system, throughput is proportional to VU count. If RPS flattens while VUs keep climbing, the system is saturated.

If the system degrades before the planned peak, you can change the run’s VU ceiling live:

  1. In the run overview, open the Live controls panel.
  2. Change the VU count target to hold at the current level longer before pushing further.
  3. Confirm. The stage profile continues from the current point without a restart.
  • The VU chart in the run overview shows a clear step pattern: flat plateaus separated by visible ramps.
  • Latency at the 50 VU plateau is lower than at the 150 VU plateau. In a healthy system the difference is small. Near capacity, it is large.
  • The run status is Finished, not Failed. If you set failure criteria, a failed run is expected (see Failure criteria pass/fail gates).
  • RPS-based stages: replace VU targets with throughput targets in each stage for an open-model stepped test.
  • More stages: add smaller intermediate steps (e.g., 50 → 100 → 150 → 200 → 250) to find the exact degradation threshold.
  • Overnight soak at the stable level: once you know the stable VU count, run it for 8–12 hours. See Overnight soak test.
  • Spike after sustain: add a short spike stage between two hold stages to test how the system handles bursts. See Spike and recover.