Repository navigation
Playwright JSON Import 2026 10 22
Most end-to-end testing today is Playwright in JavaScript and TypeScript repos. qasight ingest and equipment: playwright both read Playwright through its JUnit reporter, which keeps only each test's last attempt. A test that failed and then passed on retry looks like a plain pass, the earlier error is gone, and the traces, screenshots and videos Playwright saved are not linked to anything. Retries and traces are exactly what people debugging a red Playwright run need, and the JSON reporter has all of them.
-
qasight/reporting/playwright_import.pyconverts a Playwright JSON report (--reporter=json) into Allure results. The JUnit importer hands it every matched file that ends in.json, sojunit_xmlglobs,qasight ingestand the post-stage hook all accept Playwright JSON with no new option. Everything after that point (summaries, history, Compare,qasight flaky, reporters) is unchanged. - One result per test, attempts as steps. Totals count tests, not attempts. Each attempt is an Allure step with its own status, duration, error and attachments, so the Allure report shows what happened on every try.
-
Status. Playwright's
expected→ passed (skipped when skipped),flaky→ passed withstatusDetails.flakyset and the first failure's message,skipped→ skipped,unexpected→ failed (broken when interrupted). A timeout is a failure, as Playwright reports it. -
Identity.
fullNameisfile › describe › title [project], so the same test in two Playwright projects is two tests. The project and the attempt count are Allure parameters,@tagsbecome Allure tags. -
Attachments. Traces, screenshots, videos,
error-context.mdandtestInfo.attach()bodies are copied next to the result as Allure attachments. Files are read only from inside the stage'starget_repo(forqasight ingest,--repo). Playwright writes absolute paths, so a report made on another machine is matched by the tail of each path under the repo, which makes a CI artifact downloaded to a laptop work. Missing, outside or oversized (over 50 MB) files are skipped and logged, never fatal. -
equipment: playwrightnow adds--reporter=list,json,htmland writes the JSON report totest-results/testo-results.json. Its default reports are alternatives: the executor imports the first one that was written (JSON, elsetest-results/testo-junit.xmlfor a stage that sets its own--reporter=junit), so the same tests are never counted twice. -
Server uploads.
qasight ingest --serveruploads.jsonfiles as they are, andPOST /api/v1/ingestkeeps the suffix so the server reads them the same way. Attachment files are not uploaded.
- Flaky Playwright tests count as passed, like Playwright itself counts them; the flaky flag and the failed attempt are visible in the Allure report.
qasight flakystill works from history across runs. - QASight's own UI does not show attachments yet. They are in the Allure results, so
qasight report allureshows them, and Playwright's HTML report stays the run's native report forequipment: playwright. - Traces for uploaded runs stay on the CI runner. Uploading them would need a size budget on the server; left for later.
- The JSON report can be large for big suites (it includes stdout). It is read once per run.
Builds on Command Adapter and JUnit Import and Playwright Adapter.
Generated from docs/Specs & ADRs/Playwright JSON Import - 2026-10-22.md. Edit it there; changes made in the wiki are overwritten.
Architecture
CLI Commands
Processes & Guides
- CI-CD Pipeline Setup
- E2E Harness Operations Guide
- GitLab Pages Demo
- Publishing Docker Images
- Publishing to Artifactory
- Publishing to PyPI
- Setup Snippets
- Shared Resource Pools
- Team Server
Prompts & Snippets
Roadmap & Strategy
- Feature Gaps and Quick Wins - 2026-10-31
- New User Journey Audit - 2026-11-01
- Paid Features to Offer Free - 2026-10-31
- Product Roadmap
Specs & ADRs
- Affected Test Selection - 2026-10-30
- Alerts Where Developers Look - 2026-10-22
- Architecture Consolidation - 2026-10-06
- Architecture Review - 2026-10-31
- BehaveX Reports - 2026-10-21
- Better Flaky Signal - 2026-11-01
- Command Adapter and JUnit Import - 2026-09-25
- Config JSON Schema - 2026-10-22
- Crash Detection - 2026-10-31
- Delta Comparison Policy
- Docs Site - 2026-10-19
- Docs Vault and Wiki Sync - 2026-10-07
- Easy Setup - 2026-11-01
- Engine Fixes - 2026-11-01
- Engineering Health Review - 2026-10-31
- Exporting Results - 2026-11-01
- Flaky Test Issues - 2026-11-01
- Flaky Test Quarantine - 2026-10-22
- Free Copies of Paid Features - 2026-11-01
- GitHub Action PR Comment - 2026-10-19
- Human-Run Resource Provider - 2026-10-30
- Importer and Integration Bug Hunt - 2026-10-31
- Ingest and Team Server - 2026-10-22
- Interview Readiness Fixes - 2026-10-07
- Library Packaging
- Lifecycle Fixes - 2026-11-02
- MCP Server - 2026-11-01
- New User Journey Automation - 2026-11-01
- Open Source Features - 2026-10-19
- OpenTelemetry Export - 2026-10-30
- Phase 3 Delta Comparison Engine Plan
- Phase 3 Unified Dashboard Plan
- Phase 4 BYOK and Failure Analysis
- Phase 5 UI Redesign - Cycles-First Navigation
- Playwright Adapter - 2026-10-19
- Playwright JSON Import - 2026-10-22
- Plugin API - 2026-10-19
- Product Roadmap Work - 2026-10-25
- Product to Ten - 2026-10-25
- Project Health - 2026-10-26
- QASight Logo - 2026-11-05
- Qualflare Follow-ups - 2026-10-26
- Quarantine From the UI - 2026-11-01
- Specs & ADRs
- Rename to QASight - 2026-11-04
- Repository Pattern - Database-Agnostic Refactor
- Resource Lifecycle Hooks - 2026-10-26
- Resource Pools and Leases - 2026-10-26
- Run Deletion and Stop - 2026-11-02
- Runner Coverage - 2026-10-26
- Scale Runs and Stages - 2026-10-24
- Security and Install Review - 2026-10-31
- Switchable Team Features - 2026-10-24
- Test Delivery Metrics - 2026-11-02
- Test Labels, Environments and Releases - 2026-11-02
- Test Source in AI Summaries - 2026-11-01
- Throwaway Stage Containers - 2026-10-24
- Tidy Cards and Demo Examples - 2026-11-05
- UI Design Review - 2026-10-31
- UI Polish - 2026-11-08
- UI Restyle - 2026-10-19
- UI Review Fixes - 2026-11-01
Testing Workflows
Vault