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.
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: 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.
4. Adjust stages live (optional)
Section titled “4. Adjust stages live (optional)”If the system degrades 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 without a 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. In a healthy system the difference is small. Near capacity, it is large.
- The run status is
Finished, notFailed. If you set failure criteria, a failed run 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 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.
Where to go next
Section titled “Where to go next”- Stress test: 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 whether a code change moved an inflection point.
- Ramp-up, think time, and pacing: the theory behind ramp rates and why hold periods matter.