A Chrome extension that displays Playwright test results from a lightweight summary JSON file hosted on GitHub Pages, AWS S3, or any public URL. Version 1.4 adds full support for AWS S3 deployment with detailed configuration instructions.
- β
Smart Badge: Shows passed/failed count (e.g.,
42/1) directly on the extension icon. - β AWS S3 Support: Deploy test results to AWS S3 with complete setup instructions.
- β Private Repo Support: Monitor private repositories by hosting your summary on GitHub Pages.
- β
New Summary Format: Supports a lightweight
test-summary.jsonfor lightning-fast updates. - β Live Polling: Auto-refreshes every 1 minute to stay in sync with CI/CD.
- β
Auto-Link Conversion: Automatically converts GitHub UI links (
/blob/) to raw links. - β
Error Awareness: Shows a Gray
?badge and a "No Tests Detected" warning if your test run crashes or has a syntax error. - β Backward Compatible: Still supports the full Playwright JSON report format.
git clone https://github.com/faruklmu17/playwright-test-viewer-extension.git
cd playwright-test-viewer-extensionβ
All the latest code is available in the main branch.
chrome://extensions/
To get the most out of version 1.3, generate a lightweight summary file in your CI/CD pipeline or local scripts. The extension expects this format:
{
"isSummary": true,
"passed": 42,
"failed": 1,
"flaky": 0,
"total": 43,
"startTime": "2025-12-21T04:00:00.000Z"
}Note: If
isSummaryis not present, the extension will attempt to parse the full Playwright JSON report automatically.
Push your JSON file to your repo. You can use the GitHub UI link or the raw link:
https://github.com/your-username/your-repo/blob/main/test-summary.json
- Click the extension icon π§©
- Paste your URL into the input field (GitHub UI links are automatically converted to Raw links).
- Click Save.
- The popup will immediately fetch and display the test summary.
Want to host your test results on AWS S3 instead of GitHub? Here's how:
- Go to AWS S3 Console
- Click Create bucket
- Choose a unique name (e.g.,
my-test-results-123) - Select your preferred region (e.g.,
us-east-2) - Click Create bucket
-
Go to your bucket β Permissions tab
-
Block public access β Click Edit
- Uncheck all 4 boxes
- Click Save changes
- Type
confirmwhen prompted
-
Bucket policy β Click Edit β Paste this (replace
YOUR-BUCKET-NAME):
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "PublicReadGetObject",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::YOUR-BUCKET-NAME/*"
}
]
}- CORS configuration β Click Edit β Paste this:
[
{
"AllowedHeaders": ["*"],
"AllowedMethods": ["GET", "HEAD"],
"AllowedOrigins": ["*"],
"ExposeHeaders": [],
"MaxAgeSeconds": 3000
}
]In your GitHub repository:
- Go to Settings β Secrets and variables β Actions
- Add these secrets:
AWS_ACCESS_KEY_ID- Your AWS access keyAWS_SECRET_ACCESS_KEY- Your AWS secret keyAWS_DEFAULT_REGION- Your bucket region (e.g.,us-east-2)
Create .github/workflows/playwright-s3.yml:
name: Deploy Test Results to AWS S3
on:
push:
branches: [main]
workflow_dispatch:
jobs:
test-and-deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install dependencies
run: npm ci
- name: Install Playwright
run: npx playwright install --with-deps
- name: Run Playwright tests
run: npx playwright test
- name: Upload results to AWS S3
if: always()
run: |
aws s3 cp test-summary.json s3://YOUR-BUCKET-NAME/results.json --acl public-read --content-type application/json
env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
AWS_DEFAULT_REGION: ${{ secrets.AWS_DEFAULT_REGION }}Your test results will be available at:
https://YOUR-BUCKET-NAME.s3.REGION.amazonaws.com/results.json
Example:
https://my-test-results-123.s3.us-east-2.amazonaws.com/results.json
Paste this URL into the extension and click Save! π
Want to see how the extension works?
π Use this test repo:
It includes:
- A working Playwright setup.
- A summary file at:
test-summary.json - A GitHub Actions workflow that generates the summary on every push.
- π© Green badge = All tests passed (e.g.,
5/0). - π₯ Red badge = One or more tests failed (e.g.,
4/1). - β¬ Gray badge (?) = No tests detected (Crash, syntax error, or empty file).
- π Auto-Sync: Opening the popup or clicking Refresh instantly syncs the badge.
- β Your data stays local β the extension only fetches the JSON you configure.
- β Does not require access to tabs or page content.
β οΈ Do not include sensitive data (like API keys or credentials) in your test results.
This project is licensed under the MIT License β see the LICENSE file for full details.
Created by Faruk Hasan Powered by Playwright
- Go to
chrome://extensions/ - Click the Reload icon on the extension card.
- If changing URL doesn't work, click Save in the popup to force a refresh.
This extension is not affiliated with or endorsed by Microsoft or Playwright.