Find out before your customers do.
TestWatch is an AI end-to-end testing service. Describe signup, login or checkout in plain English; it writes a real Playwright test, runs it on a schedule or from CI, and tells you why it failed.
Free: 5 tests, 500 runs a month, 2 apps and one daily schedule. Unlimited teammates, no card.
Checkout with 2FA sign-in, on the Fieldmark demo shop
- PassedSign in as the 2FA shopper310 ms
- PassedOpen the Waterproof Notebook and add one to the cart130 ms
- PassedCheck out and pay with test card185 ms
- PassedVerify order confirmation and total65 ms
0AI calls on this passing run
What you can check
- 0 AI calls
on a passing run. Runs are plain Playwright, so every plan includes them.
- 94% good outcomes
in our eval (87 trials, October 2026). 1% were false green, so you review every test. How we measured
- Code you own
Every test is Playwright you can read and copy. Export the whole suite as a project.
- 4 browser profiles
Desktop and mobile Chrome, mobile and desktop Safari.
End-to-end tests are nobody’s job
So signup, login and checkout break quietly and a customer tells you. Hand-written suites rot after the next redesign, and testers that bill every run make checking often expensive.
Pay to create tests, not to run them
No AI credits. A passing run makes no AI calls, so runs are included and you pay per test.
What it does for you
Logs in like your users
Passwords, authenticator-app 2FA, and codes or links sent by email.
await page.getByRole('button', { name: 'Sign in' }).click();
await page.getByRole('textbox', { name: 'Authentication code' }).fill(otp());
await page.getByRole('button', { name: 'Verify' }).click();
Runs on a schedule and tells you when it breaks
Daily on Free, hourly on Starter and as often as every 15 minutes on Team. Failures email the owner on every plan; Slack and email channels on paid plans.
Checkout with 2FA sign-inFailed
Failing step: Verify order confirmation and total
Expected $21.00, received $16.00
A real failed run on the demo shop after we broke its cart total.
Four browser profiles from one description
Desktop and mobile Chrome, mobile and desktop Safari, emulated.
- Desktop ChromeSupported
- Mobile Chrome (Pixel 7)Supported
- Mobile Safari (iPhone 13)Supported
- Desktop SafariSupported
Tells you why it failed
A UI change, a real bug, an outage, a CAPTCHA or a bad login: every failure gets a call.
A button was renamedFix proposed
The page changed, not the app’s behaviour
The cart total was wrongFailed
Not a UI change. Needs your decision
The contact formBlocked
The app blocked automated access (CAPTCHA / WAF). Not a problem with your test.
You approve every fix
When the page changes, it proposes a new locator or wait. Assertions in your main tests are never touched.

Code you can read and keep
Every test is plain Playwright with named steps. Copy one, or export the whole suite.
await test.step('Open the Waterproof Notebook and add one to the cart', async () => {
await page.getByRole('link', { name: 'Waterproof Notebook' }).click();
await page.getByTestId('add-to-cart').click();
await expect(page.getByRole('link', { name: 'Check out' })).toBeVisible();
});
Questions
Can I trust tests written by AI?
Not blindly, and we don’t ask you to. In our eval on our own fixture apps (87 trials, October 2026), 94% of generations ended well: a correct test, or a correct explanation of why the flow can’t be tested. 1% were false green: the test passed when it should have failed. That is why you review each test and every fix.
Do I pay for every run?
No. A passing run is plain Playwright and makes no AI calls, so every plan includes its runs. Going over isn’t billed or blocked: above 150% of your runs, they wait behind other runs until the month resets. Pricing.
What happens when a test breaks?
TestWatch looks at the failure and says what it is: the page changed, a real bug, the app is down, a CAPTCHA, or a login that no longer works. For a page change it proposes a new locator or wait; nothing changes until you approve it.
What does the AI see?
While writing a test: your description and scrubbed snapshots of the pages it visits. When a run fails: the scrubbed error and a page snapshot. When a run passes: nothing. Security details.
Can it log in, including 2FA?
Yes: password logins and authenticator-app (TOTP) 2FA, with credentials encrypted at rest. Emailed codes, verify links, magic links and password resets work through built-in test inboxes on every plan. SMS codes aren’t supported. Logins with 2FA.
Can it run from CI?
Yes, on Starter or higher: the GitHub Action testwatch-dev/action, the CLI @testwatch/cli, the REST API, or a signed deploy hook start a run. The Action and CLI wait for the verdict and can fail the build on a real bug. On every plan, runs also start on a schedule or by hand. GitHub Action docs.
Am I locked in?
Every test is ordinary Playwright code you can read and copy. On every plan you can export the whole suite as a runnable Playwright project and run it with npx playwright test. Export your suite.
Write your first test in a few minutes.
Free: 5 tests, 500 runs a month, 2 apps and one daily schedule. Unlimited teammates, no card.