#20 Digest
This week’s batch is packed with smart strategies for making Playwright tests more reliable and maintainable—think plain-English assertions that dodge brittle selectors and patterns that survive UI refactors. We’re also diving into scaling headless Chromium without memory headaches and exploring how AI is reshaping E2E test architecture and selector accuracy. Dive in to pick up fresh tools and ideas from the community that you can start applying today.
One Developer, 10 Client Sites, Zero Manual QA
A practical pattern for using Playwright with Passmark and OpenRouter to validate multiple client sites with plain-English assertions instead of brittle selectors. It shows how to focus tests on user-visible outcomes, keep assertions specific, and run lightweight portfolio-wide regression checks cheaply.
Playwright Projects | Self-Testing AI Agents
A practical deep dive into Playwright projects, showing how to use dependency graphs for setup/teardown, auth state, and environment-specific test suites. It also walks through when to prefer project-scoped setup over globalSetup and how to structure isolated test graphs in a real repo.
Stop AI from hallucinating E2E test selectors — code analysis + live browser exploration via Claude Agent SDK and 2 MCP servers
This article shows a production approach for generating Playwright E2E tests with Claude Agent SDK by combining codebase analysis and live browser exploration. It covers in-process MCP tooling, accessibility-tree refs, and how to reduce hallucinated selectors by giving the model both repo conventions and the actual DOM.
How I Used AI to Fix Our E2E Test Architecture
A practical case study on using AI to untangle and refactor a large Playwright E2E suite. It covers tracer-bullet migrations, fixture design, project dependencies, serial-mode failure cascades, and how to use multiple AI tools safely with Playwright docs as the source of truth.
Playwright HTML Reporter: Why It Breaks Down at Scale
A detailed critique of Playwright's HTML reporter at scale, explaining why it breaks down for large parallel suites and what observability features teams need instead. Readers will learn how worker visibility, flakiness trends, and branch-aware reporting improve triage and CI reliability.
Beyond Cucumber: A Type-Safe 4-Layer BDD Architecture with Playwright
A technical deep dive into a Cucumber-free BDD-style architecture for Playwright tests, including a fluent step API, decorator-based flows, fixtures, and richer Allure diagnostics with HTML tables. It also shows how to combine API setup and UI verification while keeping business intent in TypeScript.
Headless Chromium at scale: four fixes for a fleet that kept eating RAM
A production-focused guide to keeping long-running Playwright/Chromium workers stable under load. It covers browser reuse, semaphore-based concurrency limits, scheduled browser restarts, and per-render BrowserContext isolation to avoid memory leaks and cross-tenant contamination.
Designing Playwright Tests That Survive UI Refactors
A practical guide to making Playwright tests survive UI refactors by prioritizing semantic locators, scoped queries, and behavior-driven page objects. It also covers team-level contracts like data-testid, pre-refactor audits, and component testing as a migration safety net.
We Built a Custom Playwright Rendering Pipeline for Our MCP Server
A practical walkthrough of a Playwright-based scraping/rendering pipeline for an MCP server. It covers multi-tier fetch strategies, smarter load detection, resource blocking, fingerprint rotation, and caching rendered pages to cut cost and latency.