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

Throughput

Set a target request rate and let BrowserStack hold it by scaling virtual users automatically.

Use the Throughput load profile to test against a target request rate instead of a fixed number of virtual users (VUs). You specify the requests per second (RPS) you want to sustain, and BrowserStack scales VUs up to a ceiling you set to hold that rate, even as your system under test slows down.

This profile suits capacity validation and service-level objective (SLO) conformance, where targets are defined in RPS, such as “the checkout API must hold 5,000 RPS at p99 under 800 ms.” With VU-based profiles you set the number of users, and the resulting RPS varies with response time. With Throughput you set the rate directly, and the VU count varies as the engine works to hold it.

The Throughput load profile is available only for API load tests that use the JMeter or Gatling engine.

Depending on your preferred method, select any one of the following to set a target throughput:

Configure the Throughput load profile

Select Throughput from the dropdown menu, then set the target request rate, the virtual user (VU) ceiling, and the duration.

The Load Profile dropdown expanded with Throughput listed among the load profile options.

  • Target RPS: Enter the requests per second you want to sustain during the test.
  • Max VUs: Set the maximum number of VUs the engine can allocate to maintain the target rate. Select Suggest to fill in a recommended value, which you can edit.
  • Total Duration: Specify how long to hold the target rate (in minutes, seconds, or a combination of both).

The Throughput load profile configured with a target RPS, max VUs, and total duration, beside a flat RPS preview chart.

BrowserStack scales VUs up to this ceiling to hold the target rate. If your system under test slows down and the engine reaches the ceiling, the achieved RPS can fall below the target.

Configure the Throughput load profile

Use the loadProfile config to set a target request rate instead of a fixed number of VUs. BrowserStack maintains the target rate by scaling VUs up to the ceiling you set. Configure the following fields:

  • Under the loadProfile block, set type to throughput.
  • Set rps to the target requests per second to sustain. Use a positive integer.
  • Set duration to how long to hold the target rate. The minimum duration is 10s.
  • Set max-vus to the maximum number of VUs the engine can allocate to maintain the rate. Use a positive integer that does not exceed your plan’s VU limit.

If your system under test slows down and the engine reaches the max-vus ceiling, the achieved RPS can fall below the target.

Set duration

BrowserStack holds the target rate for the specified duration.

How to set duration values:

  • If less than 1 minute: use seconds (_s), e.g., 45s
  • If less than 1 hour: use minutes and seconds (_m_s), e.g., 12m30s, 10m
  • If 1 hour or more: use hours, minutes, and seconds (_h_m_s), e.g., 1h5m20s, 1h17m, 1h
browserstack-load.yml
loadProfile:
  type: throughput
  rps: 5000
  duration: 15m
  max-vus: 800

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