Skip to main content

Introduction

Test retries automatically re-run failed tests to handle flaky tests and improve test reliability. Playwright provides built-in retry mechanisms with detailed tracking.

Configuring Retries

From src/common/config.ts:192:

Global Retry Configuration

Environment-Based Retries

Project-Level Retries

Test-Level Retries

From src/common/testType.ts:186-209:

How Retries Work

From src/common/test.ts:257-284:

Retry Execution Flow

Test Result Structure

Retry Behavior

Test Outcomes

From src/common/test.ts:292-294:
Example outcomes:

Retry Context

Each retry gets a fresh test environment:

Accessing Retry Information

From test info:

Recording on Retries

From src/common/config.ts:118-119:

Screenshots

Videos

Traces

Conditional Logic Based on Retries

Retry Strategies

Aggressive Retries for Flaky Tests

No Retries for Unit Tests

Smart Retry Configuration

Debugging Flaky Tests

Identify Flaky Tests

Track Retry Patterns

CLI Retry Options

From CLI:

Failing on Flaky Tests

From src/common/config.ts:83:

Repeat Tests

From src/common/config.ts:191: Different from retries - runs tests multiple times regardless of outcome:

Best Practices

1. Use Retries Wisely

2. Fix Root Causes

3. Add Diagnostics on Retry

4. Monitor Retry Rates

5. Different Strategies for Different Tests

Common Anti-Patterns

Anti-Pattern 1: Excessive Retries

Anti-Pattern 2: Retry-Dependent Logic

Anti-Pattern 3: Ignoring Flaky Tests

Example: Complete Retry Strategy

Monitoring Retry Health

Next Steps

Configuration

Configure retry settings

Test Hooks

Set up consistent test state