Playwright E2E Testing Checklist
20 items · Technical · Hard difficulty · 2 hours
Essential Playwright E2E steps for reliable browser tests and CI pipelines.
-
Install Node.js and Playwright browsers
Install Node LTS, add Playwright package, and run 'npx playwright install' to fetch browsers.
-
Initialize Playwright project and config file
Create playwright.config.ts, set testDir, timeouts, and project browsers.
- Create Page Object Model (POM) structure
-
Create a BasePage class with shared helpers
Include common navigation, waits, and element helpers for reuse.
-
Create per-page classes with selectors and actions
Keep selectors and actions encapsulated to simplify tests.
-
Export types and reusable fixtures for tests
Share locator types and fixtures to enforce consistent APIs.
- Implement test data isolation strategy
-
Provision an isolated test database or container per run
Reset DB or use disposable containers to avoid cross-test pollution.
-
Generate unique test data per test run
Use timestamps or UUIDs for users, emails, and resources to avoid collisions.
- Create and reuse auth storageState for authenticated flows
-
Generate storageState with a login script or Playwright flow
Run a trusted login once to save state.json for reuse in tests.
-
Load storageState in contextOptions and secure credentials
Apply storageState to browserContext; keep secrets out of the repo.
-
Configure parallel execution and worker limits in config
Set workers, shard tests if needed, and monitor for flaky failures.
-
Enable screenshots, traces, and videos on failure
Turn on artifacts for failing tests to speed up debugging.
-
Add visual snapshot baseline and comparison workflow
Store baselines and review diffs; keep visuals under source control or CI artifacts.
-
Integrate Playwright into CI and install browsers in pipeline
Install Playwright browsers in CI before running tests and cache node modules.
-
Upload test artifacts and HTML reports from CI
Publish traces, videos, screenshots, and HTML reports as CI artifacts for review.
-
Add retries, sensible timeouts, and flaky test annotations
Use retries sparingly and annotate flaky tests for future fixes.
-
Run tests locally in headed mode and use the inspector to debug
Use 'npx playwright test --headed --debug' to interactively reproduce failures.
-
Clean up test data and implement teardown scripts
Remove created users and reset external state after runs to avoid pollution.
Printed from TickYouOff — the interactive version tracks your progress and can be shared with others.