Playwright generates HTML test reports, but sharing them with your team is surprisingly difficult. npx playwright show-report works on your laptop; sending the results to QA, your PM, or a client on a Slack thread is a different problem. Here’s how to share Playwright test reports properly.
The Playwright Report Sharing Problem
The local server from npx playwright show-report is only accessible on your machine. How do you share the report when:
- QA needs to see what failed before approving a release
- A PM wants to check test coverage for a feature
- You’re debugging with a colleague and need to show them the exact failure
- You need to reference an old test run from weeks ago
Common (Bad) Solutions
1. Email the zip file
- Clunky, fills up inboxes, version confusion
- Recipient has to download, extract, open in browser
2. Upload to S3/GCS manually
- Works, but requires manual steps every time
- Who manages the bucket? What about access control?
3. Rely on CI artifacts
- GitHub Actions artifacts expire after 90 days (configurable)
- GitLab artifacts expire too
- Finding the right artifact in a sea of workflow runs is tedious
4. Share your screen
- Not async-friendly
- Can’t reference later
Better Solution: Hosted Playwright Reports
The real solution is to host your Playwright reports on a dedicated platform. Every test run gets a unique URL that your team can access through the dashboard.
What Good Looks Like
- CI runs your Playwright tests
- Reports automatically upload to a hosting service
- You get a shareable URL like
https://app.gaffer.sh/reports/abc123 - Share the link in Slack, Jira, GitHub PR, wherever
- Anyone with access can view the full interactive report
No downloads. No manual steps. Configurable retention periods.
Sharing Beyond Your Team
Need to share a report with someone who doesn’t have a Gaffer account — a contractor, a stakeholder, or another team? Share links let you generate a public URL for any test run. Set an expiration (1 hour to 30 days, or never), and revoke the link when you’re done. Recipients see the full interactive Playwright report in their browser without needing to log in.
Setting Up Playwright Report Sharing with Gaffer
Gaffer hosts your Playwright reports with a single step in your CI pipeline: run your tests, then upload ./playwright-report with the Gaffer uploader action (GitHub Actions) or a curl POST (GitLab, CircleCI, anywhere else). Full setup for each CI provider is in the CI guides. A minimal GitHub Actions step:
- name: Upload report to Gaffer if: always() uses: gaffer-sh/gaffer-uploader@v2 with: api-key: ${{ secrets.GAFFER_UPLOAD_TOKEN }} report-path: ./playwright-reportAfter upload, Gaffer returns a URL to the hosted report. Paste it in Slack, PR comments, or Jira tickets, wherever your team already talks about releases.
Bonus: Slack Notifications
Tired of checking CI manually? Gaffer can send test results directly to Slack:
- Pass/fail summary at a glance
- Direct link to the full report
- Filter by branch (only notify on
main, not every feature branch)
No more “did the tests pass?” messages in Slack.
Comparing Playwright Report Sharing Options
| Method | Retention | Shareable link | Automated | Team access |
|---|---|---|---|---|
Local show-report | None | ✕ | ✕ | ✕ |
| Email zip files | Manual | ✕ | ✕ | ✓ |
| CI artifacts | 30–90 days | ✓ | ✓ | ✓ (if CI access) |
| S3 manual upload | Configurable | ✓ | ✕ | Depends |
| Gaffer | Up to 90 days | ✓ | ✓ | ✓ (public share links) |
Beyond Sharing: Playwright Analytics
Once you’re hosting reports, you unlock analytics:
- Pass rate trends - Is your test suite getting more stable or less?
- Flaky test detection - Which tests fail intermittently?
- Duration tracking - Are tests getting slower?
- Failure patterns - See which tests fail most often
Who Uses Hosted Playwright Reports
QA teams, consultancies, and product teams use Gaffer to send hosted Playwright reports to stakeholders who don’t have CI access. Free tier includes 500 MB of storage with 7-day retention; paid plans extend retention up to 90 days.