Migrating from mabl

Two steps: get your tests out of mabl as Playwright code, so nothing is lost, then rewrite the ones you keep maintaining as plain-English tests.

1. Export to Playwright

mabl's CLI exports browser tests as Playwright (TypeScript):mabl tests export --format playwright. Run the result withnpx playwright test to keep your coverage while you move.

Source: mabl help: exporting tests from the CLI (checked 30 September 2026). What an export contains is up to mabl; check a few tests by hand.

2. Rewrite as plain English

Coming There is no mabl importer yet: automatic import is planned. Rewrite each journey from its steps, using the table below (and the Playwright mappingfor the exported code). Then record it once:npx optestra author tests/login.test.md.

mabl concepts and their equivalents
mablIn a test file
Test (journey)a test: one .test.md file, steps in plain English
Flow (reusable steps)a flow (kind: flow), included with Use:; flows can include flows
Variablesdata: in the test, or vars per environment ({{env.X}})
DataTablesComing Data-driven runs from a CSV or JSON file: the dataset: field is read today, running every row is coming
Credentialssecrets: names in the project file, values in .env or your keychain, typed only into their allowed domains
Two-factor codesa TOTP secret (type: totp) types the current code
mabl Mailboxa test inbox: Mailpit, Mailosaur or MailSlurp, and {{inbox.code}}; hosted inboxes are coming
Environments / applicationsenvironments in the project file, each with its base URL and allowed domains
AssertionsExpect: lines, each compiled to a typed check
Plans (scheduled runs)Coming the GitHub Action or any CI today; scheduled cloud runs are coming

A worked example

A login journey (open the login page, type the email and the stored password, submit, see the dashboard) becomes:

---
name: Returning user can log in
start: /login
---

1. Fill "Email" with ada@example.com
2. Fill "Password" with {{secret.SHOP_PASSWORD}}
3. Click "Log in"
4. Expect: the page heading is "Dashboard"

The password is a secret: the project file names it and the domains it may be typed into, and the value stays in .env or your keychain. Seesecrets.

What's different

  • No seat pricing, and running on your own computer or CI is free: pricing.
  • The AI isn't tied to our runners: use your own key, a local model or your own Claude or ChatGPT plan, anywhere.
  • Your tests are files in your repository and Playwright specs you can walk away with.