From Playwright
Convert Playwright end-to-end specs into Smoketest tests you write in words.
Playwright specs usually contain the user journey you want to keep, plus implementation details Smoketest does not need: locators, retries, waits, storage state, and browser setup.
In Smoketest, keep the journey and expected outcome. Drop the selector strategy.
Translate the concepts
| Playwright | Smoketest |
|---|---|
test() body | One focused test |
test.describe() | Test naming, tags, or project grouping |
page.goto() | Start URL and first test step |
page.getByRole().click() / locator.fill() | Action step in words |
expect(locator).toBeVisible() | Verification step in words |
storageState or login fixture | Environment-backed login steps or a Shared Step |
playwright.config.ts baseURL | Project URL or run-scoped start URL |
| Trace/video artifacts | Smoketest run history, screenshots, and recording |
What to migrate
- End-to-end specs under
tests/,e2e/, or the configuredtestDir - Login, onboarding, checkout, billing, dashboard, settings, and critical navigation journeys
- Assertions that describe visible product outcomes
- Fixtures that describe test users, plan states, or seeded data
Keep component tests, API-only tests, network-mocked tests, and browser-engine compatibility matrices in Playwright unless they also represent a real user journey against a real environment.
Quick migration prompt
Paste this into your coding agent from the repository that contains your Playwright tests:
Use $smoketest-explore to migrate this repository's Playwright end-to-end specs to Smoketest.
1. Check that the Smoketest CLI is installed and authenticated.
2. Read playwright.config.* to find baseURL, testDir, projects, and storageState setup.
3. Read Playwright specs, fixtures, and global setup files.
4. Convert only real browser user journeys into .smoketest/explore test drafts.
5. Express actions and assertions in words. Drop locators, waits, retries, and Playwright-specific setup.
6. Use Smoketest environments for credentials; never put passwords in test markdown or chat.
7. Validate and dry-run the generated manifest.
8. List created, updated, skipped, and blocked candidates, then ask before applying with the CLI.Create one test manually
cat > homepage-pricing.md <<'EOF'
## Homepage to pricing
- Open the homepage.
- Use the main navigation to open pricing.
- Verify the pricing page shows the available plans and a primary signup action.
EOF
smoketest tests create \
--name "Homepage to pricing" \
--url https://staging.example.com \
--description @homepage-pricing.mdAfter migration
- Run a small set first and review recordings before migrating the whole suite.
- Split long specs that cover multiple journeys into multiple tests.
- Attach an environment to authenticated tests.
- Use GitHub triggers or deployment webhooks for PR and preview deployment coverage.
- Keep Playwright for lower-level checks that do not need a real user journey.