Playwright + Next.js Testing Best Practices
Comprehensive testing optimization guide for Playwright with Next.js applications. Contains 43 rules across 8 categories, prioritized by impact to guide reliable, fast, and maintainable E2E tests.
When to Apply
Reference these guidelines when:
-
Writing new Playwright tests for Next.js apps
-
Debugging flaky or failing tests
-
Optimizing test execution speed
-
Setting up authentication state reuse
-
Configuring CI/CD pipelines for testing
-
Testing Server Components and App Router features
-
Reviewing test code for reliability issues
Rule Categories by Priority
Priority Category Impact Prefix
1 Test Architecture CRITICAL arch-
2 Selectors & Locators CRITICAL loc-
3 Waiting & Assertions HIGH wait-
4 Authentication & State HIGH auth-
5 Mocking & Network MEDIUM-HIGH mock-
6 Next.js Integration MEDIUM next-
7 Performance & Speed MEDIUM perf-
8 Debugging & CI LOW-MEDIUM debug-
Quick Reference
- Test Architecture (CRITICAL)
-
arch-test-isolation
-
Use fresh browser context for each test
-
arch-parallel-execution
-
Enable parallel test execution
-
arch-page-object-model
-
Use Page Object Model for complex pages
-
arch-fixtures
-
Use fixtures for shared setup
-
arch-test-production
-
Test against production builds
-
arch-cleanup-state
-
Clean up test state after each test
- Selectors & Locators (CRITICAL)
-
loc-role-selectors
-
Use role-based selectors over CSS
-
loc-data-testid
-
Use data-testid for dynamic elements
-
loc-label-selectors
-
Use getByLabel for form inputs
-
loc-text-selectors
-
Use getByText for static content
-
loc-avoid-xpath
-
Avoid XPath selectors
-
loc-chained-locators
-
Chain locators for specificity
-
loc-placeholder-selector
-
Use getByPlaceholder sparingly
- Waiting & Assertions (HIGH)
-
wait-web-first-assertions
-
Use web-first assertions
-
wait-avoid-hard-waits
-
Avoid hard waits
-
wait-network-idle
-
Use network idle for complex pages
-
wait-action-retries
-
Let actions auto-wait before interacting
-
wait-soft-assertions
-
Use soft assertions for non-critical checks
-
wait-custom-timeout
-
Configure timeouts appropriately
- Authentication & State (HIGH)
-
auth-storage-state
-
Reuse authentication with storage state
-
auth-multiple-roles
-
Use separate storage states for different roles
-
auth-session-storage
-
Handle session storage for auth
-
auth-api-login
-
Use API login for faster auth setup
-
auth-parallel-workers
-
Use worker-scoped auth for parallel tests
- Mocking & Network (MEDIUM-HIGH)
-
mock-api-responses
-
Mock API responses for deterministic tests
-
mock-intercept-modify
-
Intercept and modify real responses
-
mock-har-files
-
Use HAR files for complex mock scenarios
-
mock-abort-requests
-
Abort unnecessary requests
-
mock-network-conditions
-
Simulate network conditions
- Next.js Integration (MEDIUM)
-
next-wait-hydration
-
Wait for hydration before interacting
-
next-server-components
-
Test server components correctly
-
next-app-router-navigation
-
Test App Router navigation patterns
-
next-server-actions
-
Test server actions end-to-end
-
next-baseurl-config
-
Configure baseURL for clean navigation
- Performance & Speed (MEDIUM)
-
perf-sharding
-
Use sharding for large test suites
-
perf-headless-ci
-
Use headless mode in CI
-
perf-browser-selection
-
Select browsers strategically
-
perf-reuse-server
-
Reuse development server when possible
-
perf-retries
-
Configure retries for flaky test recovery
- Debugging & CI (LOW-MEDIUM)
-
debug-trace-viewer
-
Use trace viewer for failed tests
-
debug-screenshots-videos
-
Capture screenshots and videos on failure
-
debug-inspector
-
Use Playwright Inspector for interactive debugging
-
debug-ci-reporters
-
Configure reporters for CI integration
How to Use
Read individual reference files for detailed explanations and code examples:
-
Section definitions - Category structure and impact levels
-
Rule template - Template for adding new rules
Reference Files
File Description
AGENTS.md Complete compiled guide with all rules
references/_sections.md Category definitions and ordering
assets/templates/_template.md Template for new rules
metadata.json Version and reference information