Get your setup working faster. Join our Discord for optimisation tips from elite testers.Join our Discord
Integrate Your Test Suite with BrowserStack
BrowserStack C# SDK supports a plug-and-play integration. Run your entire test suite in parallel with a few steps!
Prerequisites
An existing automated test suite.
.Net v6.0+, NUnit v3.0.0+. (if you are using NUnit), xUnit v2.0+ (if you are using xUnit)
Integration steps
To begin with our starter project, check out our C# sample project. If you are already using the sample project, you may skip the integration steps.
Depending on your preferred method of building projects, perform the following steps to integrate your test suite with BrowserStack.
You can integrate your test suite with C# SDK using NUnit, xUnit, or SpecFlow.
Save your BrowserStack credentials as environment variables. It simplifies running your test suite from your local or CI environment. For MacOS, set the values in your ~/.zprofile (zsh) or ~/.profile (bash).
Steps to install BrowserStack SDK as a NuGet package:
On the Visual Studio toolbar, select Project > Manage NuGet Packages.
A NuGet Package Manager Window opens.
In the Browse tab, search for BrowserStack.TestAdapter, and click Install.
Create your BrowserStack config file
After installing the SDK, create a browserstack.yml config file at the root level of your project. This file holds all the required capabilities to run tests on BrowserStack.
Set access credentials
Set userName and accessKey parameters in the browserstack.yml file, available in the root directory, to authenticate your tests on BrowserStack.
Set platforms to test on
Set the browsers/devices you want to test under the platforms object. Our config follows W3C formatted capabilities.
Parallel thread
#1
Windows 10
Chrome 120
Parallel thread
#2
OS X Monterey
Safari 15.6
Parallel thread
#3
iOS 15
iPhone 13
Do you want to dynamically configure platforms?
To dynamically configure platforms across different tests, you can comment out the platforms capability while still passing platform-specific capabilities.
Configure AI Agents
You can enable the following AI agents by adding the respective configurations in your browserstack.yml file:
Enable Self Heal Agent
Auto-fix locator failures with the AI-powered self-heal agent and get up to 40% fewer locator failures. Learn more
True
False
Test Failure Analysis Agent
Auto-enabled
AI-powered root cause analysis for test failures that can reduce debugging time. Learn more
Enable BrowserStack Local
Test localhost/internal servers in your network
True
False
Test localhost/staging websites that are not publicly accessible
BrowserStackβs Local Testing feature connects with test suites pointing to your localhost URL
If your staging environment is behind a proxy or firewall, additional arguments, such as proxy username, proxy password, etc, must be set.
Check out Local Binary parameters to learn about additional arguments or Contact Support for assistance.
BrowserStack Reporting (part 1/2)
You can leverage BrowserStackβs extensive reporting features using the following capabilities:
Build Name
Set a name to your build (usually the same as the build ID thatβs on your CI/CD platform). Accepted characters: A-Z, a-z, 0-9, ., :, -, [], /, @, &, ', _. All other characters are ignored. Character limit: 255
Project Name
Set a project name for your project.
The projectName and buildName config must be static and not change across different runs of the same build. This is a deviation in approach as specified by BrowserStack Automate or App Automate as Test Reporting & Analytics will automatically identify different build runs.
Restrict the characters in your projectName and buildName to alphanumeric characters (A-Z, a-z, 0-9), underscores (_), colons (:), square brackets ([, ]), and hyphens (-). Any other character will be replaced with an underscore (_).
sessionName is the name of your test sessions and is automatically picked from your test class/spec name. It doesnβt need to be set manually when using the BrowserStack SDK.
Use additional debugging features
BrowserStack offers session logs, screenshots of failed commands, and a video of the entire test, with additional options to enable.
Visual logs
Enables screenshots for every selenium command ran
True
False
Network logs
Enables network capture for the session in HAR format. Reduces session performance slightly
True
False
Console logs
Set the remote Browserβs console log levels. Currently supported only on Chrome browsers (Desktop and Android)
Info
Info
Debug
Warn
Error
Update browserstack.yml file
Update the browserstack.yml file in the root folder of your test suite and add the given code to it.
```yml
userName: YOUR_USERNAME
accessKey: YOUR_ACCESS_KEY
platforms:
- YOUR_FIRST_OS_TYPE: YOUR_FIRST_OS
YOUR_FIRST_OS_VERSION_TYPE: YOUR_FIRST_OS_VERSION
YOUR_FIRST_BROWSER_TYPE: YOUR_FIRST_BROWSER
YOUR_FIRST_BROWSER_VERSION_TYPE: YOUR_FIRST_BROWSER_VERSION
- YOUR_SECOND_OS_TYPE: YOUR_SECOND_OS
YOUR_SECOND_OS_VERSION_TYPE: YOUR_SECOND_OS_VERSION
YOUR_SECOND_BROWSER_TYPE: YOUR_SECOND_BROWSER
YOUR_SECOND_BROWSER_VERSION_TYPE: YOUR_SECOND_BROWSER_VERSION
- YOUR_THIRD_OS_TYPE: YOUR_THIRD_OS
YOUR_THIRD_OS_VERSION_TYPE: YOUR_THIRD_OS_VERSION
YOUR_THIRD_BROWSER_TYPE: YOUR_THIRD_BROWSER
YOUR_THIRD_BROWSER_VERSION_TYPE: YOUR_THIRD_BROWSER_VERSION
YOUR_LOCAL_CAPS_TYPE: YOUR_LOCAL_CAPS
YOUR_BUILD_NAME_TYPE: YOUR_BUILD_NAME
YOUR_PROJECT_NAME_TYPE: YOUR_PROJECT_NAME
CUSTOM_TAG_1: "You can set a custom Build Tag here"
# Use CUSTOM_TAG_<N> and set more build tags as you need.
YOUR_DEBUG_CAPS_TYPE: YOUR_DEBUG_CAPS
YOUR_NETWORK_CAPS_TYPE: YOUR_NETWORK_CAPS
YOUR_CONSOLE_CAPS_TYPE: YOUR_CONSOLE_CAPS
selfHeal: YOUR_SELF_HEAL
```
Use our Capability Generator to select from a comprehensive set of options you can use to customize your tests.
BrowserStack Reporting (part 2/2)
Test assertions are specific to selected language frameworks. BrowserStack requires explicit instruction to determine whether your tests have passed or failed based on the assertions in your test script.
Mark session name
You can use the sessionName capability to give your session a name (usually describing the test case) so that it is easy for you to debug later.
```bash
# Set these values in your ~/.zprofile (zsh) or ~/.profile (bash)
export BROWSERSTACK_USERNAME="YOUR_USERNAME"
export BROWSERSTACK_ACCESS_KEY="YOUR_ACCESS_KEY"
```
Run the given command to install the BrowserStack SDK and create a browserstack.yml file in the root directory of your project.
The browserstack.yml config file holds all the required capabilities to run tests on BrowserStack.
The BrowserStack.TestAdapter works on top of your framework test adapter to run parallel tests on BrowserStack across multiple platforms mentioned on the browserstack.yml file.
Now that the BrowserStack SDK has been installed and the browserstack.yml config file has been created, update your browserstack.yml config file with the given parameters.
Set platforms to test on
Set the browsers and devices you want to test under the platforms object. Our config follows W3C formatted capabilities.
Parallel thread
#1
Windows 10
Chrome 120
Parallel thread
#2
OS X Monterey
Safari 15.6
Parallel thread
#3
iOS 15
iPhone 13
Do you want to dynamically configure platforms?
To dynamically configure platforms across different tests, you can comment out the platforms capability while still passing platform-specific capabilities.
Configure AI Agents
You can enable the following AI agents by adding the respective configurations in your browserstack.yml file:
Enable Self Heal Agent
Auto-fix locator failures with the AI-powered self-heal agent and get up to 40% fewer locator failures. Learn more
True
False
Test Failure Analysis Agent
Auto-enabled
AI-powered root cause analysis for test failures that can reduce debugging time. Learn more
Enable BrowserStack Local
Test localhost/internal servers in your network
True
False
Test localhost/staging websites that are not publicly accessible
BrowserStackβs Local Testing feature connects with test suites pointing to your localhost URL
If your staging environment is behind a proxy or firewall, additional arguments, such as proxy username, proxy password, etc, must be set.
Check out Local Binary parameters to learn about additional arguments or Contact Support for assistance.
BrowserStack Reporting (part 1/2)
You can leverage BrowserStackβs extensive reporting features using the following capabilities:
Build Name
Set a name to your build (usually the same as the build ID thatβs on your CI/CD platform). Accepted characters: A-Z, a-z, 0-9, ., :, -, [], /, @, &, ', _. All other characters are ignored. Character limit: 255
Project Name
Set a project name for your project.
The projectName and buildName config must be static and not change across different runs of the same build. This is a deviation in approach as specified by BrowserStack Automate or App Automate as Test Reporting & Analytics will automatically identify different build runs.
Restrict the characters in your projectName and buildName to alphanumeric characters (A-Z, a-z, 0-9), underscores (_), colons (:), square brackets ([, ]), and hyphens (-). Any other character will be replaced with an underscore (_).
sessionName is the name of your test sessions and is automatically picked from your test class/spec name. It doesnβt need to be set manually when using the BrowserStack SDK.
Use additional debugging features
BrowserStack offers session logs, screenshots of failed commands, and a video of the entire test, with additional options to enable.
Visual logs
Enables screenshots for every selenium command ran
True
False
Network logs
Enables network capture for the session in HAR format. Reduces session performance slightly
True
False
Console logs
Set the remote Browserβs console log levels. Currently supported only on Chrome browsers (Desktop and Android)
Info
Info
Debug
Warn
Error
Update browserstack.yml file with selected capabilities
Copy the code snippet and replace the contents of the browserstack.yml file in the root folder of your test suite.
```yml
userName: YOUR_USERNAME
accessKey: YOUR_ACCESS_KEY
platforms:
- YOUR_FIRST_OS_TYPE: YOUR_FIRST_OS
YOUR_FIRST_OS_VERSION_TYPE: YOUR_FIRST_OS_VERSION
YOUR_FIRST_BROWSER_TYPE: YOUR_FIRST_BROWSER
YOUR_FIRST_BROWSER_VERSION_TYPE: YOUR_FIRST_BROWSER_VERSION
- YOUR_SECOND_OS_TYPE: YOUR_SECOND_OS
YOUR_SECOND_OS_VERSION_TYPE: YOUR_SECOND_OS_VERSION
YOUR_SECOND_BROWSER_TYPE: YOUR_SECOND_BROWSER
YOUR_SECOND_BROWSER_VERSION_TYPE: YOUR_SECOND_BROWSER_VERSION
- YOUR_THIRD_OS_TYPE: YOUR_THIRD_OS
YOUR_THIRD_OS_VERSION_TYPE: YOUR_THIRD_OS_VERSION
YOUR_THIRD_BROWSER_TYPE: YOUR_THIRD_BROWSER
YOUR_THIRD_BROWSER_VERSION_TYPE: YOUR_THIRD_BROWSER_VERSION
YOUR_LOCAL_CAPS_TYPE: YOUR_LOCAL_CAPS
YOUR_BUILD_NAME_TYPE: YOUR_BUILD_NAME
YOUR_PROJECT_NAME_TYPE: YOUR_PROJECT_NAME
CUSTOM_TAG_1: "You can set a custom Build Tag here"
# Use CUSTOM_TAG_<N> and set more build tags as you need.
YOUR_DEBUG_CAPS_TYPE: YOUR_DEBUG_CAPS
YOUR_NETWORK_CAPS_TYPE: YOUR_NETWORK_CAPS
YOUR_CONSOLE_CAPS_TYPE: YOUR_CONSOLE_CAPS
selfHeal: YOUR_SELF_HEAL
```
Use our Capability Generator to select from a comprehensive set of options you can use to customize your tests.
BrowserStack Reporting (part 2/2)
Test assertions are specific to selected language frameworks. BrowserStack requires explicit instruction to determine whether your tests have passed or failed based on the assertions in your test script.
Mark session name
You can use the sessionName capability to give your session a name (usually describing the test case) so that it is easy for you to debug later.
Continue running your tests as you have been running previously. The command to run your tests using the BrowserStack SDK remains unchanged. For your reference, hereβs a sample command:
The resolution capability changes the default desktop screen resolution for your tests on BrowserStack.
Capability
Description
Expected values
resolution
Set the resolution of your VM before beginning your test
A string. Default resolution is 1024x768
Supported resolutions: Windows (XP, 7):800x600, 1024x768, 1280x800, 1280x1024, 1366x768, 1440x900, 1680x1050, 1600x1200, 1920x1200, 1920x1080, and 2048x1536
Windows (8, 8.1, 10):1024x768, 1280x800, 1280x1024, 1366x768, 1440x900, 1680x1050, 1600x1200, 1920x1200, 1920x1080, and 2048x1536
OS X (Golden Gate, Tahoe, Sequoia, Sonoma, Ventura, Monterey, Big Sur, Catalina, Mojave, and High Sierra):1024x768, 1280x960, 1280x1024, 1600x1200, 1920x1080, 2560x1440, 2560x1600, and 3840x2160
OS X (All other versions):1024x768, 1280x960, 1280x1024, 1600x1200, and 1920x1080