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

Run API collections as load tests

Run an existing API collection as a load test by importing it into Requestly, with no scripting required.

Bring your collection into Requestly, the BrowserStack API client. You can create it in Requestly, or import it from Postman, a HAR capture, or another supported format. Then select it in Load Testing, choose how much load to generate and where to generate it from, and start the test. Your collection runs as an API (protocol) load test, and this guide takes about 10 minutes.

Prerequisites

  • A BrowserStack account with Load Testing access.
  • A Requestly account. BrowserStack creates this automatically with your Load Testing account and signs you in through your BrowserStack login, so there’s nothing extra to set up.
  • At least one API collection in Requestly. You can create it in Requestly, or import it from Postman, a HAR file, or another supported format.

If your APIs are already live in Postman, a HAR capture, or another tool, import them into Requestly first, and they appear here as collections you can load test.

How it works?

When you start the test, Load Testing pulls the selected collection from Requestly and replays its requests under load. It preserves your variables, environments, headers, authentication, and pre-request and post-request scripts, and it generates load using the number of virtual users, duration, and regions you choose.

A Virtual User (VU) is one simulated client that sends requests in a loop. A region, also called a load zone, is the geographic location that traffic comes from.

Load Testing reads your collection live from Requestly each time a test runs. When you edit the collection in Requestly, the next run picks up your changes. You don’t re-import or re-upload anything.

Run a collection from the dashboard

The dashboard walks you through three steps.

Enter the basic details and choose the test type

  1. On the Load Testing dashboard, click Create Load Test.
  2. Enter a Load Test Name, for example, checkout-api-stress.
  3. For the test type, select API Only. Select Hybrid (API & Browser) only if you also want browser-driven load alongside your API collection.
  4. Click Configure Load Sources.

Step 1 of the load test setup with the API Only test type selected and the Configure Load Sources button.

Choose your collection in Requestly

  1. Under Select API Load Source, choose Import API Collection.
  2. In the Import from Requestly panel, click Show Requestly Collections. Your Requestly projects load, followed by a list under Select from existing API Collections.
  3. Click Select a collection and pick the collection you want to load test.
  4. (Optional) Under Select Requestly Environment, pick an environment. Load Testing pulls its variables live from Requestly when the test runs. Leave it unset if your collection doesn’t use environment variables.
  5. Click Configure Load.

Load sources step with Import API Collection selected and the Show Requestly Collections link in the Import from Requestly panel.

If you don’t have a collection yet, click Create Collections or Create new collection in Requestly to open Requestly in a new tab. There you can build a collection from scratch or import one from Postman, a HAR file, and more. Then, return to Load Testing and click Show Requestly Collections again.

Configure the load and run

  1. Choose a Load Profile. All profiles are supported:
    • Constant VUs: a fixed number of virtual users for a set duration.
    • Ramping VUs: ramp users up and down over stages you define.
    • Per VU Iterations: each virtual user runs the collection a fixed number of times.
    • Spike VUs: hold a baseline, then spike to a peak.
    • Throughput: target a requests-per-second rate.
  2. Set the load. The fields depend on the profile you picked. For example:
    • Constant VUs: set Virtual Users, for example 200, and Duration, for example 10m.
    • Per VU Iterations: set Virtual Users, Max Duration, and Iterations.
  3. Under Select Load zones to run your tests, pick one or more regions and set the Load Distribution percentages. The percentages must total 100%. For example, us-east-1 is 70% and eu-central-1 is 30%.
  4. (Optional) Enable Throttle Network to simulate constrained bandwidth.
  5. Click Run Test.

Load zones table with per-region load distribution percentages and a load zone split chart.

When you edit an existing test, the button reads Save & Run Test, with Save Only as the secondary action, instead of Run Test.

After you click Run Test, a new run appears in your test list and moves from provisioning into a running state. Warm-up can take 1 to 2 minutes before requests start, which is normal. Once the run is active, open it to watch live metrics for requests, response times, and errors in each region.

What carries over from your collection?

Load Testing reproduces most of your collection accurately when it runs the test. The following tables show what you can rely on.

Requests

Collection feature Supported? Notes
HTTP methods Yes GET, POST, PUT, PATCH, DELETE, and HEAD.
URL and path variables Yes Template variables and /:id-style path parameters are resolved.
Query parameters Yes Standard query string parameters are sent as-is.
Headers Yes Includes headers added dynamically by a pre-request script.
Request body (raw, text, JSON) Yes The Content-Type is preserved, or auto-detected if you didn’t set one.
Request body (x-www-form-urlencoded) Yes Form fields are sent as url-encoded data.
Request body (multipart/form-data) Partial Text fields are sent as url-encoded data. File parts are dropped, because they can’t be reconstructed from a collection export.
GraphQL requests Yes Sent as a POST with a JSON body that holds the query, variables, and operation name.
Folders Yes Nested folders are preserved, so your metrics stay grouped by folder.

Authentication

Set authentication at the collection, folder, or request level in Requestly, and it carries over. Load Testing supports these types:

Auth type Supported
No Auth or Inherit Yes
Basic Yes
Bearer token Yes
API key Yes
AWS Signature v4 Yes, with live signing
OAuth 1.0 Yes, both HMAC and PLAINTEXT
OAuth 2.0 Yes, Client Credentials and Password grants, or a token you paste in manually
JWT Bearer Yes, HS256, HS384, and HS512, placed in a header
Hawk Yes
Digest Yes
NTLM Yes

Troubleshooting

What you see What to do
“No collections found yet. Create or sync them in Requestly to get started.” The selected Requestly project has no collections. Click Create Collections to open Requestly, add or import a collection, then come back.
“Unable to import collections from Requestly.” Load Testing couldn’t reach Requestly. Click Try Again. If it keeps failing, use Contact Us.
You can’t click Run Test because the regions don’t add up. Your Load Distribution percentages must total exactly 100%. Adjust the per-region values, for example us-east-1 60% and ap-south-1 40%.
“Cannot start new test as parallel test execution limit exceeded.” You’ve reached your plan’s limit on concurrent tests. Wait for running or queued tests to finish, or contact BrowserStack to raise the limit.

What’s next

Continue with these related topics:

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