Playwright 1.55.1 Chromium vs Cypress 14.5.4 Electron on one local smoke (visit /, assert h1, click, assert). Warm medians (7 rounds after 1 warm-up): Playwright 1,466 ms vs Cypress 4,243 ms (~2.9x). Disk: PW node_modules ~12 MB + cache ~918 MB; Cypress node_modules ~23 MB + cache ~601 MB. Fixture /workspace/bench-pw-cy/.
4 min read
I timed one identical browser smoke seven times on this box: Playwright 1.55 (Chromium) median 1,466 ms, Cypress 14.5 (Electron) median 4,243 ms — about 2.9× slower for the same visit, assert, click, assert. Warm-up already discarded; both exited 0 every round.
Short answer: for a thin CI smoke like this, Playwright was the faster default here. Cypress still wins if your team already lives in its time-travel runner UI; the wall-clock gap on a one-spec suite was real. No affiliate links in this post.
playwright test vs cypress run --browser electron --headless). One warm-up each, then 7 interleaved timed rounds. Caches already populated (browsers preinstalled).| Runner (1 smoke, warm) | Browser | Median wall | Min / Max |
|---|---|---|---|
Playwright 1.55 test | Chromium | 1,466 ms | 1,433 / 1,601 |
Cypress 14.5 run | Electron | 4,243 ms | 4,066 / 4,396 |
Same assertions, same local static server, same box. Cypress paid a larger per-process boot tax; Playwright's Chromium headless shell came up quicker for this one-file suite. That matches the narrow question: how long until green on a trivial smoke, not how the runners feel day to day.
If you are comparing unit runners instead of browsers, see Jest vs Vitest and Bun test vs Vitest. For a recent Playwright release note on this site, see Playwright 1.63 test locks.
Yes, partly. I did not run Cypress against Chrome or Playwright against Firefox. Electron vs Chromium is not an apples-to-apples engine match. Treat the 2.9× figure as "CLI smoke on this box with each tool's default headless path," not a universal browser benchmark.
Still, for CI scripts that only need a fast green/red on a public page, the Playwright median under 1.5 s was consistently ahead of Cypress past 4 s. Teams that already standardize on Cypress Dashboard, custom commands, and the interactive runner should weigh migration cost higher than this one number.
| Situation | My pick |
|---|---|
| New greenfield app, CI needs a cheap smoke | Playwright |
| Existing Cypress suite and shared custom commands | Stay on Cypress |
| Multi-browser matrix (Chromium + Firefox + WebKit) | Playwright first |
| Team depends on Cypress time-travel UI daily | Cypress |
| Component tests inside Vite already on Vitest | Prefer Vitest 5 upgrade notes plus Playwright for e2e |
| Network mocking at the service-worker layer | Pair with MSW vs nock regardless of runner |
Bottom line: on one smoke, Playwright returned in 1.47 s median while Cypress needed 4.24 s. Who should not switch: teams whose Cypress investment is the suite and the workflow, not the boot time of a single spec.
How this was made: I installed Playwright and Cypress on the ShopperCove box, served one static page, timed interleaved CLI smokes after a warm-up, recorded JSON medians and disk footprints; the write-up was drafted with AI help and checked against that output.
Lab evidence
Hands-on on ShopperCove box 6 Oct 2026 ~00:15–00:16 IST (8 vCPU Intel Xeon / 15 GB shared Linux, Node 22.20.0). @playwright/test 1.55.1 Chromium headless shell; Cypress 14.5.4 headless Electron. Fixture /workspace/bench-pw-cy/: static page at 127.0.0.1:4177 with #title/#btn/#out; one smoke each. Wall clock around CLI; 1 warm-up + 7 interleaved rounds. Medians PW 1466 ms (1433–1601) vs Cypress 4243 ms (4066–4396). Footprints: ms-playwright cache ~918 MB, Cypress cache ~601 MB; pw/node_modules ~12 MB, cy/node_modules ~23 MB. Raw: /workspace/bench-pw-cy/res-pw-cy.json. Not tested: Firefox/WebKit, Cypress Chrome, parallel shards, component testing, trace UX, Windows/macOS. No affiliate.
esbuild-register 3.6.0 vs jiti 2.7.0 on a 61-file TypeScript graph: cold wall medians 343 ms vs 540 ms (~1.57x); after jiti disk cache warm, 185 ms vs esbuild-register 350 ms. Same printed result 970.
Hands-on5 Oct 20264 min read
Madge 8.0.0 vs dependency-cruiser 16.10.2 on 116 JS files: median wall 679 ms vs 1122 ms (~1.65x). Both found the same 2 circular dependency groups. Depcruise also reported 120 modules / 193 dependencies.
Summary5 Oct 20264 min read
dprint 0.60.1 vs Prettier 3.9.9 on 180 files (120 JS + 40 JSON + 20 MD, 38925 B pristine): write medians 514 ms vs 1586 ms; check 455 ms vs 1313 ms. Output 44805 vs 45285 B. All 120 JS files differed on arrow-param parentheses under these defaults.
Summary5 Oct 20265 min read