playwright
Playwright CT with MSW for API Isolation in Component Tests
Component tests that hit real APIs are integration tests wearing a costume.
playwright
Component tests that hit real APIs are integration tests wearing a costume.
Puppeteer
Puppeteer and Playwright share a common origin — most of Playwright's founding team came from the Puppeteer project at Google. They look similar at first glance, but they've diverged significantly. Choosing the wrong one adds friction to your testing workflow. This is a practical comparison covering what
playwright
Playwright's built-in screenshot comparison is a pixel differ with a configurable threshold. It works well out of the box, but the default failure output — a saved PNG diff in your test results directory — is awkward to review. Developers end up running tests locally, opening three images side
Performance Testing
Lighthouse is good at measuring page load performance. It's bad at measuring everything that happens after load: navigation between pages, complex interactions, data-heavy operations, application-specific flows. For those, Playwright with Chrome DevTools Protocol (CDP) is the right tool. This guide covers using Playwright to catch performance
Testing
Testing multilingual applications is one of those things teams either do well or skip entirely. When you skip it, you find out the hard way: a Japanese user reports that your checkout button disappears, a German customer can't read dates, or your Arabic support launch breaks the entire
playwright
@playwright/experimental-ct-svelte brings the same mount-in-browser approach to Svelte that the React and Vue adapters provide. The component runs in a real browser, in a real DOM, with real Svelte reactivity — not a jsdom approximation. For Svelte specifically, this matters because Svelte's compiled output
playwright
Playwright Component Testing (CT) runs your components inside a real browser, mounted in an iframe served by a Vite dev server. That's the key detail that explains why React Server Components cause problems: RSC requires a Node.js runtime to execute, and there is no Node.js inside
playwright
Playwright Component Testing has a startup cost that unit test frameworks don't: each worker spins up its own Vite dev server. With 2 workers, you have 2 Vite instances. With 8, you have 8. At small scale this is invisible. At 500+ component tests across a large design
Testing
End-to-end testing browser extensions is significantly more complex than E2E testing a web app. Extensions have multiple entry points (popup, options page, content scripts, service worker), interact with browser APIs that automation tools don't fully support, and have permission models that affect behavior. This guide covers
Testing
Protractor reached end-of-life in 2023. If you're still running it, you're on borrowed time — unmaintained dependencies, no Chromium updates, and no support for modern Angular features. Playwright is the replacement worth betting on: faster, more reliable, and actively maintained by Microsoft. This guide covers
Acceptance Testing
Choosing an acceptance testing tool is a decision that shapes how your team writes tests, who can contribute to them, and how sustainable your test suite will be over time. The right tool depends on your application type, team expertise, stakeholder involvement needs, and how much you value different trade-
react
End-to-end tests for React Router v7 apps need to account for SSR hydration, client-side navigation, loader data rendering, and form action redirects. This guide sets up Playwright for a v7 app from scratch and covers every major testing scenario with working examples. Key Takeaways SSR hydration must