Skip to content

Cypress vs Playwright (ATK Runner Choice)

When to Use

Use Playwright when starting fresh in 2026. Use Cypress only when you have an existing suite that justifies staying on it. ATK supports both; pick one per project.

Decision

If you... Pick
Have an existing Cypress suite Cypress (ATK still maintains the Cypress catalog)
Are starting fresh in 2026 Playwright (see Playwright for Visual Regression for the runner's full surface — same setup applies to ATK functional tests)
Need cross-browser (Firefox, WebKit) Playwright (Cypress is Chromium-family only)
Need parallel sharding without paid services Playwright (Cypress paid for parallel until recently)
Want strong web-first assertions Playwright (auto-retry semantics)
Already use Playwright for visual regression Playwright (one runner, one set of fixtures)

Pattern

What's the Same Across Runners

Convention Cypress Playwright
File suffix *.cy.js *.spec.js
Test ID prefix -CY- -PW-
Helpers js-helpers/cypress/* js-helpers/playwright/*
Selector strategy Same (selector hooks from ATK module) Same
Drush invocation Same (configurable: local / container / SSH) Same
Pre-flight checks Same (atk_prerequisites.yml) Same
Testor snapshots Same Drush commands Same

What Differs

Concern Cypress Playwright
Browsers Chromium family only Chromium + Firefox + WebKit
Auto-retry semantics cy.should() chains Web-first expect() assertions
Test parallelization Limited free tier; paid for sharding Built-in workers + sharding
Network mocking cy.intercept() page.route()
Iframe/cross-origin Restricted by design Full support
Trace viewer / debugger Cypress App with time-travel UI Playwright Trace Viewer with DOM snapshots

Common Mistakes

  • Wrong: Asserting one runner is "better" → Right: ATK supports both; pick what your team knows or can adopt
  • Wrong: Mixing runners on the same component → Right: pick one per project; keeping two suites is double the maintenance
  • Wrong: Assuming tests are 1:1 portable → Right: assertion idioms differ; helpers carry over but test bodies need translation

See Also