Introduction
Test automation is not just about executing tests—it is also about understanding the results. A good test report helps QA engineers, developers, managers, and stakeholders quickly identify which tests passed, which failed, and why.
Without proper reporting, debugging automation failures becomes difficult, especially in large enterprise projects where thousands of tests run every day.
One of the most common questions beginners ask is:
“Can Playwright generate test reports?”
The answer is yes. Microsoft Playwright includes several built-in reporting options and also supports third-party reporting tools such as Allure.
In this guide, you’ll learn how Playwright generates reports, configure different reporters, create HTML reports, integrate Allure, and understand enterprise reporting workflows.
What Is Playwright?
Microsoft Playwright is an open-source browser automation framework used for testing modern web applications.
Playwright supports:
- Chromium
- Firefox
- WebKit
Major features include:
- Cross-browser testing
- Auto Waiting
- API Testing
- Visual Testing
- Parallel Execution
- Trace Viewer
- Screenshots
- Video Recording
- Built-in Reporting
These features make Playwright an excellent choice for enterprise automation testing.
Can Playwright Generate Test Reports? (Direct Answer)
The short answer is:
Yes. Playwright can generate test reports using built-in reporters such as HTML, List, Line, Dot, JSON, and JUnit XML. It also supports advanced third-party reporting solutions like Allure.
Playwright reports provide valuable information including:
- Passed tests
- Failed tests
- Execution time
- Error messages
- Screenshots
- Videos
- Trace files
These reports make debugging and sharing automation results much easier.
Why Are Test Reports Important?
Automation reports help teams:
- Understand test execution results
- Identify failed test cases
- Debug failures faster
- Share execution status
- Monitor automation quality
- Improve CI/CD visibility
Without reports, teams must inspect logs manually, which becomes difficult in large projects.
Types of Reports Supported by Playwright
Playwright supports several built-in reporters.
| Reporter | Purpose |
| HTML | Interactive browser report |
| List | Detailed console output |
| Line | Compact console output |
| Dot | Minimal progress output |
| JSON | Machine-readable report |
| JUnit XML | CI/CD integration |
| Allure | Advanced reporting (third-party) |
Built-in Playwright Reporters
HTML Reporter
The HTML reporter generates a rich interactive report.
Features:
- Passed tests
- Failed tests
- Error stack traces
- Screenshots
- Trace links
- Execution duration
It is the most commonly used Playwright reporter.
List Reporter
Displays detailed execution information directly in the terminal.
Useful during development.
Line Reporter
Shows one updating line of execution progress.
Suitable for CI logs.
Dot Reporter
Displays minimal output.
Example:
……..F……
Useful when executing thousands of tests.
JSON Reporter
Generates structured JSON output.
Useful for:
- Dashboards
- Analytics
- Custom reporting
JUnit XML Reporter
Produces XML reports compatible with many CI/CD platforms.
Supported by:
- Jenkins
- Azure DevOps
- GitHub Actions
- GitLab CI
Configuring Reporters in Playwright
Open:
playwright.config.ts
Configure reporters like this:
import { defineConfig } from ‘@playwright/test’;
export default defineConfig({
reporter: [
[‘html’],
[‘json’, { outputFile: ‘reports/results.json’ }],
[‘junit’, { outputFile: ‘reports/results.xml’ }]
]
});
Explanation
HTML Reporter
[‘html’]
Creates an interactive HTML report.
JSON Reporter
[‘json’, {
outputFile: ‘reports/results.json’
}]
Stores execution results as JSON.
JUnit Reporter
[‘junit’, {
outputFile: ‘reports/results.xml’
}]
Generates an XML report for CI/CD systems.
Generating HTML Reports
Run your tests:
npx playwright test
After execution, open the report:
npx playwright show-report
The HTML report opens in your browser with detailed execution results.
Playwright HTML Report Features
The HTML report includes:
- Test summary
- Pass/fail status
- Error details
- Stack traces
- Execution time
- Retry information
- Screenshots (when configured)
- Trace links
- Video links (when enabled)
This makes debugging much faster than reading raw console logs.
Generating JSON Reports
If JSON reporting is configured, Playwright automatically creates:
reports/results.json
This file can be consumed by custom dashboards or reporting tools.
Generating JUnit XML Reports
Similarly, Playwright creates:
reports/results.xml
JUnit XML is widely used by CI/CD platforms to visualize test execution results.
Allure Reporting
For advanced reporting, many enterprise teams use Allure Report with Playwright.
Benefits include:
- Interactive dashboard
- Historical trends
- Test categories
- Environment details
- Attachments
- Screenshots
- Videos
Allure is especially useful for large automation projects where richer analytics are needed.
Real-World Playwright Test Report Example
import { test, expect } from ‘@playwright/test’;
test(‘Login Test’, async ({ page }) => {
await page.goto(‘https://example.com/login’);
await page.getByLabel(‘Username’).fill(‘admin’);
await page.getByLabel(‘Password’).fill(‘password123’);
await page.getByRole(‘button’, {
name: ‘Login’
}).click();
await expect(page).toHaveURL(/dashboard/);
});
Step-by-Step Explanation
Import Playwright
import { test, expect } from ‘@playwright/test’;
Imports Playwright’s test runner and assertion library.
Navigate to the Login Page
await page.goto(‘https://example.com/login’);
Opens the application in the browser.
Enter Credentials
await page.getByLabel(‘Username’).fill(‘admin’);
await page.getByLabel(‘Password’).fill(‘password123’);
Fills the login form using accessible locators.
Click Login
await page.getByRole(‘button’, {
name: ‘Login’
}).click();
Playwright automatically waits until the button is ready before clicking.
Verify the Result
await expect(page).toHaveURL(/dashboard/);
If this assertion passes, the report shows the test as Passed. If it fails, the report includes the failure details, stack trace, and any configured artifacts such as screenshots or traces.
Viewing and Sharing Test Reports
Once your Playwright tests have finished executing, the next step is reviewing and sharing the results. Playwright makes this simple with its built-in reporting tools.
Open the HTML Report
Run the following command:
npx playwright show-report
This launches the HTML report in your default browser.
The report provides an interactive dashboard where you can:
- View passed and failed tests
- See execution duration
- Filter tests
- Expand error messages
- View stack traces
- Open screenshots
- Open trace files
- Watch recorded videos (if enabled)
This rich UI helps developers and QA engineers quickly identify failures.
Sharing Reports with Your Team
In enterprise environments, reports are commonly shared in several ways.
HTML Reports
Generate the report and publish the output folder as a CI/CD artifact so teammates can download and view it.
JSON Reports
JSON reports are useful for:
- Custom dashboards
- Analytics
- Reporting tools
- Test trend analysis
JUnit XML Reports
Most CI/CD systems automatically display JUnit XML reports.
Common integrations include:
- Jenkins
- Azure DevOps
- GitHub Actions
- GitLab CI
Screenshots, Videos, and Trace Files
Playwright can capture additional artifacts that make debugging much easier.
Screenshots
Configure screenshots in playwright.config.ts:
use: {
screenshot: ‘only-on-failure’
}
Benefits:
- Capture UI at the time of failure
- Verify unexpected application behavior
- Simplify debugging
Video Recording
Enable video recording:
use: {
video: ‘retain-on-failure’
}
Videos help visualize what happened during test execution.
Trace Viewer
Trace Viewer is one of Playwright’s most powerful debugging tools.
Enable tracing:
use: {
trace: ‘retain-on-failure’
}
Trace Viewer records:
- Page navigation
- Click actions
- Network requests
- Console logs
- Screenshots
- DOM snapshots
Open a trace with:
npx playwright show-trace trace.zip
This allows you to replay the test step by step.
Enterprise Reporting Workflow
In large organizations, test reporting is often integrated into CI/CD pipelines.
Developer
│
▼
Git Push
│
▼
GitHub Actions / Jenkins / Azure DevOps
│
▼
Playwright Test Execution
│
▼
Generate Reports
│
▼
HTML + JSON + JUnit
│
▼
Publish Artifacts
│
▼
QA & Developers Review Results
This workflow ensures that every code change is validated automatically and that reports are available to the entire team.
Playwright Built-in Reports vs Allure
| Feature | Playwright HTML Report | Allure Report |
| Built into Playwright | ✅ Yes | ❌ No |
| Easy Setup | ✅ Yes | Moderate |
| Interactive Dashboard | ✅ Yes | ✅ Yes |
| Historical Trends | ❌ No | ✅ Yes |
| Categories | ❌ No | ✅ Yes |
| Screenshots | ✅ Yes | ✅ Yes |
| Videos | ✅ Yes | ✅ Yes |
| Trace Links | ✅ Yes | Limited |
| CI/CD Integration | Excellent | Excellent |
Which Should You Choose?
Use the Playwright HTML Report if:
- You are learning Playwright.
- You have a small or medium-sized project.
- You need a quick, built-in reporting solution.
Consider Allure Report if:
- You manage large enterprise automation suites.
- You need historical trends and advanced dashboards.
- Multiple teams review automation reports.
Best Practices for Test Reporting
Follow these best practices to make Playwright reports more useful.
1. Always Generate HTML Reports
HTML reports provide an easy way to review execution results and should be enabled for most projects.
2. Capture Screenshots on Failure
Screenshots reduce debugging time by showing the application’s state when a test failed.
3. Enable Trace Viewer
Trace files provide detailed insight into failures and are especially valuable for intermittent issues.
4. Record Videos for Failed Tests
Videos help explain unexpected UI behavior that may not be obvious from logs alone.
5. Store Reports as CI/CD Artifacts
Publishing reports from CI/CD pipelines allows the entire team to review results without rerunning tests.
6. Keep Historical Reports
Maintaining historical reports helps teams identify recurring failures and measure test stability over time.
7. Use Multiple Reporters
Combining HTML, JSON, and JUnit reporters gives both human-readable and machine-readable output.
8. Remove Obsolete Reports
Archive or delete outdated reports periodically to keep storage usage under control.
Playwright Reporting Interview Questions
1. Can Playwright generate test reports?
Yes. Playwright supports built-in reporters such as HTML, List, Line, Dot, JSON, and JUnit XML, and it can integrate with Allure for advanced reporting.
2. Which Playwright reporter is most commonly used?
The HTML Reporter is the most commonly used because it provides an interactive report with detailed execution information.
3. How do you open an HTML report?
npx playwright show-report
4. Can Playwright generate JUnit XML reports?
Yes. JUnit XML reports can be configured in playwright.config.ts and are commonly used with CI/CD systems.
5. What is Trace Viewer?
Trace Viewer is a debugging tool that records browser actions, screenshots, network activity, console logs, and DOM snapshots for a test run.
6. Does Playwright support Allure Reports?
Yes. Playwright can integrate with Allure using community-supported integrations.
7. Why are test reports important?
They help teams analyze failures, monitor test execution, and share results with developers and stakeholders.
8. Which CI/CD tools work with Playwright reports?
Popular options include:
- GitHub Actions
- Jenkins
- Azure DevOps
- GitLab CI
9. Can reports include screenshots?
Yes. Screenshots can be configured to be captured on failures or for every test.
10. Can reports include videos?
Yes. Playwright can retain videos for failed tests or all tests, depending on the configuration.
Frequently Asked Questions
Can Playwright generate test reports?
Yes. Playwright includes built-in support for HTML, JSON, JUnit XML, List, Line, and Dot reporters. It also supports Allure through additional integration.
How do I generate an HTML report?
Run your tests with Playwright and then execute:
npx playwright show-report
Does Playwright support Allure?
Yes. Allure can be integrated to provide advanced dashboards, historical trends, and rich reporting features.
Can Playwright capture screenshots?
Yes. Screenshots can be configured to capture on failures or under other conditions.
Can Playwright record videos?
Yes. Video recording can be enabled through the Playwright configuration.
What is the best Playwright reporter?
For most projects, the built-in HTML Reporter is sufficient. Enterprise teams may choose Allure when they need additional reporting capabilities.
Can reports be shared with the team?
Yes. Reports can be published as CI/CD artifacts or stored on shared servers for team access.
What should I learn after Playwright Reporting?
Recommended topics include:
- Playwright HTML Report
- Playwright TypeScript
- Playwright CI/CD Pipeline
- Playwright GitHub Actions
- Playwright Jenkins Pipeline
- Playwright Page Object Model
- Playwright Interview Questions
