Comparison
Playwright Test Agents and Regresco: who writes the test, and who keeps running it
By Sergei Pustovalov · 4 November 2026 · 7 min read
Playwright now comes with agents that write its tests. If you've tried them, you may be wondering why anyone would still pay for a tool like Regresco. I build Regresco, so read this knowing that. To answer it, I took the tests Playwright's agents generated for their own example, imported them into Regresco and ran them.
The agents write and repair tests in your editor, while someone is working. Regresco runs tests on a schedule, when nobody is. Those are different jobs, and you can use both.
What Playwright Test Agents are
Three agent definitions, in Playwright since version 1.56. You add them to a project with npx playwright init-agents --loop=claude (the other options are vscode, codex and opencode), and your coding tool can call them:
- The planner explores your app and writes a test plan in Markdown.
- The generator turns the plan into Playwright test files, checking selectors and assertions on the live page as it goes.
- The healer runs the tests and repairs the ones that fail.
They're free, and the result is ordinary Playwright code in your repository: fixtures, network mocks, three browser engines, everything Playwright can do. You pay for the coding tool and the model.
They also stop when you stop. Nothing runs until someone starts an agent, and running the tests every night, keeping their history and telling someone what failed is yours to set up.
What Regresco does
Regresco keeps flows in your account and runs them in cloud Chromium on a schedule, from a CI webhook, or when your coding agent asks. Each run is compared with the ones before it. A failed step gets a label (likely regression, broken selector or flaky), a screenshot and the browser's console errors, and you get an email.
The limits are real. It runs Chromium only. A flow has ten step types and no custom JavaScript, so it can't use fixtures or network mocks, can't double-click, and can't check that something is gone or what a field holds.
Side by side
| What | Playwright Test Agents | Regresco |
|---|---|---|
| Who writes the test | An agent in your coding tool | You in a form, your coding agent over MCP, a crawl of your site, or an import |
| What you end up with | Playwright code in your repository | Flows in your Regresco account |
| Browsers | Chromium, Firefox and WebKit | Chromium, with a phone's size and touch if you ask |
| What a test can do | The whole Playwright API | Ten step types, with no custom JavaScript |
| Runs when nobody is working | What you set up in CI | Daily or weekly schedule, or a CI webhook |
| A selector changes | The healer edits the code when someone starts it | A click or fill follows the one element with the same name during the run, and the step says so |
| The product breaks | The healer marks the test test.fixme, so it stops running | The step fails, with a label and a screenshot |
| What a failure tells you | The Playwright report | Likely regression, broken selector or flaky, from earlier runs |
| Who gets told | What you set up | Email to you, and a Jira ticket if you connect it |
| Price | Free, plus your model and your CI | $0, $99 or $299 a month, by number of runs |
We ran their tests in Regresco
Playwright's repository has an example project, examples/todomvc, with tests in the form their generator writes. I pasted all 23 into Regresco's import page, one file at a time, in a project pointed at their demo site, and ran the project once.
- 18 of 23 passed on the first run, with no selector replaced.
- The other 5 failed, all for one reason: they start editing a todo with
dblclick(). A flow has no double-click step, so the import listed that line as skipped, and the next step found no edit box.
Passing doesn't mean the flow checks everything its test did. From the 23 files, 187 lines became steps and 29 stayed behind:
- 21 checks a flow can't make:
toHaveValue(8),.not.toBeVisible(6),.not.toBeChecked(2),toHaveCount(2), and one each oftoBeFocused,toMatchAriaSnapshotandtoHaveURLwith a regular expression. - 8 actions: the 5 double clicks, 2
page.keyboard.presscalls with nothing typed before them, and afill('').
Another 4 checks, all toBeChecked, came in as “the element is visible”. Only 7 of the 23 tests came through whole. “Should not add empty todo” passes in Regresco with one click and nothing else, because everything it checks is on that list. The import page shows those lines under each test before you import, so read them: if a test's whole point is on the list, keep that test in your repository.
Their tests open no page, because a fixture does that for them, and fixtures aren't imported. Each flow starts at the project's staging URL instead, and the page says so.
The list of what the importer reads is in the docs.
How to use both
- Let the planner and the generator draft tests for your critical paths. Read them, and keep them in your repository.
- Run them in CI on pull requests, in the browsers you care about. That's where the full Playwright API earns its keep.
- Paste the ones that matter most into Regresco, point the project at staging and schedule a daily run. From then on nobody has to remember to run them, and a failure arrives as an email with a label and a screenshot.
- When a selector changes, let the healer repair the code in your editor. Regresco's own repair is narrower: a click or fill whose selector stopped matching follows the one element on the page with exactly the same name.
- When the healer marks a test
test.fixme, treat it as a bug report. I ran it on real bugs, and that's what it did every time: the test stops running, and the suite goes green.
If your coding agent is Claude Code, you can skip the file: it can save and run flows in Regresco directly, over MCP. Here's how that works.
When you don't need Regresco
You have a Playwright suite, CI runs it every night, and someone reads the reports. Or you need Firefox and WebKit, or things a flow can't do, like network mocks. Then Test Agents and managed Playwright runners are the closer fit, and I'd use them.
When it helps
Nobody on the team owns the test suite, and generated tests would sit in a folder and go stale. You want someone outside engineering to read a flow and a failure. You want history, labels and alerts without building them.
Questions
What are Playwright Test Agents?
Three agent definitions that ship with Playwright since version 1.56. The planner explores your app and writes a test plan in Markdown, the generator turns the plan into Playwright test files, and the healer runs the tests and repairs the ones that fail. You add them with npx playwright init-agents and use them from your coding tool.
Are Playwright Test Agents free?
The agents are part of Playwright, which is free and open source. You pay for the coding tool and the model that run them, and for wherever you run the tests afterwards.
Do Playwright Test Agents run tests on a schedule?
No. They work when someone starts them in a coding tool. Running the generated tests every night, keeping their history and telling someone what failed is what you set up yourself, usually in CI.
Can I import tests the generator writes into Regresco?
Yes. Paste the .spec.ts file into a project's import page. We tried it on the 23 generated tests in Playwright's own TodoMVC example: 18 passed on their first run, and the other five need a double click, which flows have no step for. Before you import, the page lists every line that can't come along.
Paste one of your tests and see what comes through
Free plan, 20 runs a month, no card. The import page shows you each step and every skipped line before anything is saved.