Staged ramp profile
Problem: A single ramp-up to a peak VU count does not tell you much about capacity boundaries. A staged ramp lets you hold at each level long enough to see whether the system has stabilised, then push to the next level — making the breaking point (if any) clearly visible in the charts.
Test type: Stress test or Load test.
Prerequisites
Section titled “Prerequisites”- A MaxoPerf account and a test file (see Upload test files).
- An estimate of your expected peak VU count or RPS from How much load do you need?.
Step by step in MaxoPerf
Section titled “Step by step in MaxoPerf”1. Write the staged scenario
Section titled “1. Write the staged scenario”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"}'2. Create the test and upload the YAML
Section titled “2. Create the test and upload the YAML”- Go to Tests → New test in the MaxoPerf console.
- Upload the YAML as the entrypoint under the Files tab.
- Bind
API_TOKENunder Settings → Secrets. - Click Run now.
3. Read the run while it runs
Section titled “3. Read the run while it runs”As each stage progresses, watch:
- VU count — confirm it tracks the
targetat each stage boundary. - p95 latency — does it stabilise at each hold level, or does it continue to climb?
- Error rate — any non-zero errors that appear during a hold level indicate capacity pressure at that load.
- Throughput (RPS) — a healthy system shows throughput proportional to VU count. A plateau in RPS while VUs keep climbing is a sign of saturation.
4. Adjust stages live (optional)
Section titled “4. Adjust stages live (optional)”If you see the system degrading before the planned peak, you can change the run’s VU ceiling live:
- In the run overview, open the Live controls panel.
- Change the VU count target to hold at the current level longer before pushing further.
- Confirm. The stage profile continues from the current point — there is no restart.
Verify
Section titled “Verify”- 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 (if the system is healthy, the difference is small; if it is near capacity, the difference is large).
- The run status is
Finished, notFailed(unless you set failure criteria, which is expected — see Failure criteria pass/fail gates).
Variations
Section titled “Variations”- RPS-based stages: replace VU targets with
throughputtargets in each stage for an open-model stepped test. - More stages: add finer-grained intermediate steps (e.g., 50 → 100 → 150 → 200 → 250) to pinpoint 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 brief spike stage between two hold stages to test burst resilience — see Spike and recover.
Where to go next
Section titled “Where to go next”- Stress test — understanding what a staged stress test measures and how to read the breaking point.
- RPS-controlled throughput test — use RPS stages instead of VU stages.
- Comparing runs and baselines — compare two staged runs to see if a code change shifted any inflection point.
- Ramp-up, think time, and pacing — the theory behind ramp rates and why hold periods matter.