TestKase
TestKase
|Docs
Automate

Migrating

Move an existing BrowserStack or LambdaTest suite to TestKase by changing a single URL — what changes, and how capabilities map.

Migrating from BrowserStack / LambdaTest

If your suite already runs on BrowserStack or LambdaTest, migration is a one-URL change. TestKase speaks the same W3C WebDriver and Playwright protocols, so your test code, assertions, and framework stay exactly as they are.

What changes

Only two things:

  1. The hub URL — swap the vendor's WebDriver endpoint for the TestKase endpoint.
  2. The vendor capability block — rename bstack:options / LT:Options to testkase:options.

Everything else — your capabilities' W3C shape, your worker/parallelism config, your CI steps — is untouched.

The URL swap

- const hub = "https://USER:KEY@hub-cloud.browserstack.com/wd/hub";
+ const hub = "https://<email>:<accessKey>@hub.testkase.com/wd/hub";

  const capabilities = {
    browserName: "chrome",
-   "bstack:options": { os: "OS X", osVersion: "Sequoia" },
+   "testkase:options": { username: "<email>", accessKey: "<accessKey>" },
  };

Point your CI at the new endpoint and re-run the pipeline — no new SDK, no test rewrites, no new assertions.

For the Selenium URL, URL-encode the @ in your email as %40 in the userinfo section, or your binding may drop the credentials.

Capability mapping

ConceptBrowserStackLambdaTestTestKase
Vendor blockbstack:optionsLT:Optionstestkase:options
BrowserbrowserNamebrowserNamebrowserName (same W3C key)
VersionbrowserVersionbrowserVersionbrowserVersion — supports latest, latest-N, or exact major
Platformos / osVersionplatformplatformName: macOS 15 / macOS 26
Build groupingbuildNamebuildtestkase:options.build
Session namesessionNamenametestkase:options.name
AuthuserName / accessKeyuser / accessKeyURL basic-auth, or testkase:options.username / accessKey

Per-test hooks

The LambdaTest-style lambda-name / lambda-status executor hooks map directly — just rename the prefix to testkase:

driver.executeScript("testkase-name=Search renders results");
driver.executeScript("testkase-status=passed");

These follow the LambdaTest pattern verbatim, so existing suites migrate without touching the surrounding logic. See Selenium → per-test metadata.

Playwright migration

For Playwright, the cleanest migration is the @testkase/playwright-reporter wrapper CLI — install it, add a testkase.yml, and run via npx testkase-playwright test. Your test files stay 100% native Playwright, the same way the BrowserStack and LambdaTest node SDKs work.

Things to know before you switch

TestKase's testkase:options is intentionally a subset of the vendor blocks (build, name, username, accessKey, tags, plus the capture flags). The dozens of proxy/geo/advanced flags those vendors ship are not all mirrored. Two current gaps: there is no local-testing tunnel yet (your test target must be a publicly reachable URL), and native mobile app automation (Appium) is coming soon — Automate is browser automation today.

Next steps