Skip to main content
No Result Found
Connect & Get help from fellow developers on our Discord community. Ask the CommunityAsk the Community

Hybrid load testing using with Selenium

Run a hybrid load test using Selenium scripts on BrowserStack Load Testing

Prerequisites

  • BrowserStack Username and Access key. You can find this under your account profile.
  • An existing JMeter script and an automated test suite written in Selenium JUnit, TestNG, or TestNG Cucumber.

Run a test

You can start a new test either from the Quick Start page, or the Load Tests page on the Load testing dashboard.

On the dashboard, click Create Load Test.

Screenshot of load testing dashboard showing the run a new test button highlighted

Enter a Test Name for your load test, select Hybrid and click Upload scripts

Dashboard showing test name field and type of load test to run

Upload your scripts

The product runs a hybrid test using JMeter and Selenium automation projects. JMeter is used to generate API-level load, and Selenium drives browser-level load to simulate real user interactions.

Before you zip and upload your Selenium automation projects, replace local WebDriver instances (such as new ChromeDriver()) with RemoteWebDriver to run tests on the remote setup. Set the remote URL to http://localhost:4444/wd/hub.
Example RemoteWebDriver driver = new RemoteWebDriver(new URL("http://localhost:4444/wd/hub"), caps);

You see two sections:

  • JMeter Script: Upload your JMeter .jmx file (up to 50MB). Drag and drop your file or click to select it.
  • Automation Project: Select Selenium - TestNG from the dropdown as your automation framework. Then, upload your zipped project files (.zip up to 250MB). Drag and drop the file or click to select it.

Screenshot of load testing dashboard asking to add scripts for load testing

Both fields are mandatory for their respective test types. After uploading, click Configure Load to proceed to the next step.

You can also run load tests using the sample scripts if you want to try out the feature before uploading your own files.

You can configure the following load parameters to customize your load test:

Run test

After you finish configuring load parameters, click RUN TEST

Download the BrowserStack Load Testing CLI

Download the CLI based on your operating system and place it at the root directory of your Selenium project:

Initialize your project for Load Testing

Run the given command from the root directory of your test project to generate the browserstack-load.yml file which contains the configuration required to define and run your load test:

Copy icon Copy

Refer to the given table to use the framework - language combination argument depending on your preference:

Framework Argument
Selenium - TestNG --framework jmeter testng --language java
Selenium - JUnit --framework jmeter junit --language java
Selenium - Java --framework jmeter selenium --language java

Configure your Load Test

Open the generated browserstack-load.yml file and update it with the relevant test details. Here’s a sample configuration:

Specify the tests

  • The tests block defines the combination of test types you want to run as part of a hybrid load test. Specify Selenium as the testType for one sub-block and JMeter for another.
  • For the Selenium sub-block,
    • browserLoadPercent - Specify the percentage of total virtual users to be allocated for Selenium tests.
    • language - Set this to java.
    • framework - Set this to testng or cucumber-testng depending on your framework.
    • files - Define the key files needed to install dependencies and identify which tests to execute.
      • Under dependencies, include the path to files required for environment setup. For Maven projects, this is typically pom.xml.
      • Under testConfigs, provide the path to your testng.xml.
  • For the JMeter sub-block,
    • apiLoadPercent - Specify the percentage of total virtual users to be allocated for JMeter tests.
    • testScripts - Set the path to the .jmx file.

Set reporting structure

Use projectName to group related tests under the same project on the dashboard. Use testName to group multiple runs of the same test.
Both projectName and testName must remain consistent across different runs of the same test.
You can use the following characters in projectName and testName:

  • Letters (A–Z, a–z)
  • Digits (0–9)
  • Periods (.), colons (:), hyphens (-), square brackets ([]), forward slashes (/), at signs (@), ampersands (&), single quotes ('), and underscores (_)
    All other characters are ignored.

You can configure the following load parameters to customize your load test:

browserstack-load.yml

Use RemoteWebDriver

Replace local WebDriver instances (such as new ChromeDriver()) with RemoteWebDriver to run tests on the remote setup. Set the remote URL to http://localhost:4444/wd/hub.

Copy icon Copy

Run the Load Test

Run the given command to start your test:

Copy icon Copy

Check out the FAQs section to get answers to commonly asked questions.

View test results

When the test is run, you’ll get a link to the result dashboard where you can analyze key metrics like:

  • Response time
  • Request throughput
  • Web vitals (LCP, CLS, INP, etc.)
  • Errors and bottlenecks

Prerequisites

  • BrowserStack Username and Access key. You can find this under your account profile.
  • An existing k6 script and an automated test suite written in Selenium JUnit, TestNG, or TestNG Cucumber.

Run a test

You can start a new test either from the Quick Start page, or the Load Tests page on the Load testing dashboard.

On the dashboard, click Create Load Test.

Screenshot of load testing dashboard showing the run a new test button highlighted

Enter a Test Name for your load test, select Hybrid and click Upload scripts

Dashboard showing test name field and type of load test to run

Upload your scripts

The product runs a hybrid test using k6 and Selenium automation projects. k6 is used to generate API-level load, and Selenium drives browser-level load to simulate real user interactions.

Before you zip and upload your Selenium automation projects, replace local WebDriver instances (such as new ChromeDriver()) with RemoteWebDriver to run tests on the remote setup. Set the remote URL to http://localhost:4444/wd/hub.
Example RemoteWebDriver driver = new RemoteWebDriver(new URL("http://localhost:4444/wd/hub"), caps);

You see two sections:

  • k6 Script: Upload your k6 .js file (up to 50MB). Drag and drop your file or click to select it.
  • Automation Project: Select Selenium - TestNG from the dropdown as your automation framework. Then, upload your zipped project files (.zip up to 250MB). Drag and drop the file or click to select it.

Screenshot of load testing dashboard asking to add scripts for load testing

Both fields are mandatory for their respective test types. After uploading, click Configure Load to proceed to the next step.

You can also run load tests using the sample scripts if you want to try out the feature before uploading your own files.

You can configure the following load parameters to customize your load test:

Run test

After you finish configuring load parameters, click RUN TEST

Download the BrowserStack Load Testing CLI

Download the CLI based on your operating system and place it at the root directory of your Selenium project:

Initialize your project for Load Testing

Run the given command from the root directory of your test project to generate the browserstack-load.yml file which contains the configuration required to define and run your load test:

Copy icon Copy

Refer to the given table to use the framework - language combination argument depending on your preference:

Framework Argument
Selenium - TestNG --framework k6 testng --language java
Selenium - JUnit --framework k6 junit --language java
Selenium - Java --framework k6 selenium --language java

Configure your Load Test

Open the generated browserstack-load.yml file and update it with the relevant test details. Here’s a sample configuration:

Specify the tests

  • The tests block defines the combination of test types you want to run as part of a hybrid load test. Specify Selenium as the testType for one sub-block and k6 for another.
  • For the Selenium sub-block,
    • browserLoadPercent - Specify the percentage of total virtual users to be allocated for Selenium tests.
    • language - Set this to java.
    • framework - Set this to testng or cucumber-testng depending on your framework.
    • files - Define the key files needed to install dependencies and identify which tests to execute.
      • Under dependencies, include the path to files required for environment setup. For Maven projects, this is typically pom.xml.
      • Under testConfigs, provide the path to your testng.xml.
  • For the k6 sub-block,
    • apiLoadPercent - Specify the percentage of total virtual users to be allocated for k6 tests.
    • testScripts - Set the path to the .js file.

Set reporting structure

Use projectName to group related tests under the same project on the dashboard. Use testName to group multiple runs of the same test.
Both projectName and testName must remain consistent across different runs of the same test.
You can use the following characters in projectName and testName:

  • Letters (A–Z, a–z)
  • Digits (0–9)
  • Periods (.), colons (:), hyphens (-), square brackets ([]), forward slashes (/), at signs (@), ampersands (&), single quotes ('), and underscores (_)
    All other characters are ignored.

You can configure the following load parameters to customize your load test:

browserstack-load.yml

Use RemoteWebDriver

Replace local WebDriver instances (such as new ChromeDriver()) with RemoteWebDriver to run tests on the remote setup. Set the remote URL to http://localhost:4444/wd/hub.

Copy icon Copy

Run the Load Test

Run the given command to start your test:

Copy icon Copy

Check out the FAQs section to get answers to commonly asked questions.

View test results

When the test is run, you’ll get a link to the result dashboard where you can analyze key metrics like:

  • Response time
  • Request throughput
  • Web vitals (LCP, CLS, INP, etc.)
  • Errors and bottlenecks

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