Skip to main content
No Result Found
Connect and get help from 7,000+ developers on our Discord community. Ask the CommunityAsk the Community

Ramping VUs

Ramp virtual users over time to simulate traffic spikes in BrowserStack Load Testing.

Use the Ramping VUs load profile to change the number of virtual users (VUs) over time in stages. You can combine a ramp-up, a hold, and a ramp-down to mimic realistic traffic patterns.

You can also use this profile for peak testing, where you ramp up to a high, sustained load to check how your system performs during a planned high-traffic event, such as a holiday sale or a scheduled live stream. To model a sudden jump to the peak, set the ramp duration as low as 0 seconds, then hold the load for as long as the event lasts.

Depending on your preferred method, select any one of the following to set ramping virtual users:

Configure Ramping VUs

Select Ramping VUs from the dropdown menu, and configure Ramp-up, Hold, and/or Ramp-down stages.

Screenshot of various stages of load testing configurations available on the dashboard

Each stage has four parameters that determine the shape of the load curve:

  • Type: Select Ramp-up, Hold, or Ramp-down
  • Duration: Specify the duration of the stage
  • Start VUs: Specify the number of VUs at the start of the stage
  • Target VUs: Specify the number of VUs at the end of the stage
    You can add additional stages as per your test requirement.

For peak testing, set the Ramp-up duration to 0 seconds to jump straight to the peak, then add a Hold stage to sustain that load for the duration of the event.

Configure Ramping VUs

If you want to gradually increase or decrease VUs over time, use the loadProfile config instead of duration. This approach lets you model realistic traffic patterns such as ramp-ups, peak holds, and ramp-downs.

  • Under the loadProfile block, set type to ramping to enable staged traffic changes.
  • Under stages, add one or more steps:
    • type: ramp increases or decreases VUs from from to to over duration. Result: VUs change linearly until they reach the target.
    • type: hold keeps VUs constant for duration. Result: VUs stay at the specified level without change.
  • Keep stage durations realistic. Very short ramps can cause bursty load that is hard to analyze.
  • Ensure your total vus is high enough to cover the largest stage to value. If not, the test cannot reach the target VUs.

Validation rules:

  • Each stage must include type, from, to, and duration.
  • Use valid time units (Xs, Xm, Xh). Example: 45s, 10m, 1h5m.
  • from and to must be non-negative integers and must not exceed the global vus limit.
  • Avoid overlapping or contradictory stages (for example, alternating rapid up/down ramps) unless you are testing resilience to bursty traffic.

For peak testing, set a ramp stage duration as low as 0s to jump straight to the peak, then add a hold stage to sustain that load for the duration of the event.

browserstack-load.yml
loadProfile:
  type: ramping
  stages:
  # Stage 1: Ramp-up from 0 to 20 VUs
  - type: ramp-up
    from: 0
    to: 20
    duration: 2m
  # Stage 2: Hold peak load
  - type: hold
    from: 20
    to: 20
    duration: 5m
  # Stage 3: Ramp-down to 0 VUs
  - type: ramp-down
    from: 20
    to: 0
    duration: 1m

We're sorry to hear that. Please share your feedback so we can do better

Contact our Support team for immediate help while we work on improving our docs.

We're continuously improving our docs. We'd love to know what you liked





Thank you for your valuable feedback

Is this page helping you?

Yes
No

We're sorry to hear that. Please share your feedback so we can do better

Contact our Support team for immediate help while we work on improving our docs.

We're continuously improving our docs. We'd love to know what you liked





Thank you for your valuable feedback!

Talk to an Expert
Download Copy Check Circle