Migrate BrowserStack Automation to webmate
If your existing suite already runs on BrowserStack Automate or App Automate, you usually keep the test logic and replace the connection layer. The migration work is mostly about removing BrowserStack-specific configuration, keeping standard WebDriver or Appium capabilities, and adding the wm: capabilities that webmate needs.
What Changes First
- Remove BrowserStack SDK wrappers or
browserstack.yml-driven session setup from the execution path. - Point remote WebDriver or Appium traffic at the webmate Selenium endpoint.
- Replace
browserstack.*orbstack:optionsvalues with standard capabilities pluswm:apikey,wm:project, and any optionalwm:*metadata. - Treat Playwright and Cypress as framework-specific adapters on top of the same remote infrastructure change.
Selenium or WebDriver Migration
Start from the minimal webmate equivalent of a BrowserStack remote browser session:
| |
| |
Keep browserName, browserVersion, and platformName. Remove BrowserStack-only capability blocks and migrate metadata such as build or session naming to wm:name, wm:tags, or wm:sessions when you need them.
Appium Migration
For App Automate suites, the same pattern applies: keep the Appium capabilities that describe the app and platform, but move device selection and authentication into the webmate capability model.
| |
| |
If you previously uploaded apps through BrowserStack-specific flows, move that part to the webmate app upload workflow described in Upload a Mobile App to webmate .
Playwright Migration
For Playwright, set the remote Selenium URL and pass webmate capabilities through the environment before you run the existing suite:
| |
This keeps the Playwright test code unchanged and swaps only the remote execution target.
Cypress Migration
BrowserStack-specific Cypress setup usually bundles service configuration into the project. In webmate, Cypress uses webmate-cypressbridge as the browser binary plus a local .conf file:
Then start Cypress with the bridge binary instead of with a BrowserStack service integration.
Helper: Translate a BrowserStack Capability Object
Use this helper when your project still builds a BrowserStack capability object in code and you want a quick first-pass rewrite:
| |
Review the output before you commit it. The helper removes obvious BrowserStack-only keys, but it cannot decide which wm:model, wm:name, or wm:tags values you actually want.
Next Steps
- For Selenium browser suites, continue with Use Existing Tests with webmate .
- For Appium suites, continue with Use Existing Tests with webmate for Appium .
- For Playwright, continue with Playwright Web Testing .
- For Cypress, continue with Cypress Testing .