> ## Documentation Index
> Fetch the complete documentation index at: https://docs.testdino.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Playwright Real-Time Reporting

> Stream Playwright results to TestDino as tests run, then watch active runs update live with per-test status and connection state.

Real-time streaming sends Playwright test results to the TestDino dashboard as each test completes. Live progress, pass/fail counts, and per-worker activity appear on the Test Runs page while the run is still executing. Streaming is the default with `@testdino/playwright`, so no upload step is needed.

## Quick Reference

| Topic | Link |
| :- | :- |
| [Setup](#setup) | Install reporter and stream tests |
| [Connection status](#connection-status) | What the live indicator means |
| [Active test runs](#active-test-runs) | Live progress while a run executes |
| [Multi-tab support](#multi-tab-support) | BroadcastChannel coordination |
| [Limitations](#known-limitations) | Browser and scope caveats |
| [FAQ](#faq) | Common questions |

## Setup

Install `@testdino/playwright` and add it to the `reporter` array in your Playwright config. This is the only entry TestDino needs. Other reporters (`html`, `list`) are optional and yours to keep.

```bash theme={null}
npm install @testdino/playwright
```

```typescript playwright.config.ts theme={null}
import { defineConfig } from '@playwright/test';

export default defineConfig({
  reporter: [
    ['@testdino/playwright', {
      token: process.env.TESTDINO_TOKEN,
    }],
  ],
});
```

Set your token and run tests the way you already do. Results stream to TestDino as the run executes.

```bash theme={null}
export TESTDINO_TOKEN="$TESTDINO_TOKEN"
npx playwright test
```

<Accordion title="Prefer not to edit your config?">
  Run `tdpw test` instead of `npx playwright test`. Same result, no config change.

  ```bash theme={null}
  npx tdpw test -t "$TESTDINO_TOKEN"
  ```

  It wraps `npx playwright test`, so any Playwright flag passes through, for example `npx tdpw test --project=chromium --shard=1/3`.
</Accordion>

Open the [Test Runs](/platform/playwright-test-runs) page. Active runs appear at the top with a live progress bar, pass/fail/skip counts, and per-worker detail.

## Connection Status

While the page waits for a run, it reports the state of its live connection to TestDino.

| Status | Meaning |
| :- | :- |
| **Connecting to real-time updates** | Establishing the connection |
| **Connected, waiting for test execution** | Ready; no run is executing yet |
| **Disconnected, reconnecting** | Connection dropped and is being retried automatically |

Results are never lost while the connection is down. The reporter keeps sending, and the page catches up once it reconnects.

## Active Test Runs

The Test Runs page displays a collapsible **Active Test Runs** section. Each active run shows a progress bar, live result counts, commit, branch, and CI source.

<img src="https://tdstorageus.blob.core.windows.net/public/docs/optimize-ci/playwright-real-time-test-streaming/sharded-runs.webp" alt="Active test runs section showing live progress and result counts" />

For sharded runs, the run is labeled **SHARDED** with tabs for each shard. Select a tab to view its workers and currently executing tests.

Runs assembled from separate CI jobs with [split mode](/guides/playwright-split-mode) are labeled **SPLITTED**. Their progress bar carries one segment per split, and each split gets a tab. Progress advances as each job reports, so a group whose jobs run concurrently fills in steps rather than smoothly.

## Multi-Tab Support

Only one browser tab opens a WebSocket connection to TestDino. This tab acts as the **primary tab**. Additional tabs receive updates through the browser's [BroadcastChannel API](https://developer.mozilla.org/en-US/docs/Web/API/BroadcastChannel).

* If you close the primary tab, another open tab promotes itself and opens a new WebSocket.
* All tabs display the same live data regardless of which tab holds the connection.

## Known Limitations

| Limitation | Detail |
| :- | :- |
| Browser support | Requires a browser that supports WebSocket and BroadcastChannel (all modern browsers) |
| Single project | Each WebSocket connection is scoped to one project at a time |

## FAQ

<AccordionGroup>
  <Accordion title="What happens if the WebSocket disconnects mid-run?">
    Results keep sending. The reporter delivers results directly from your test process, on a separate path from the dashboard's live connection, so a dropped browser connection never affects what reaches TestDino. When the dashboard reconnects, it catches up to the current state.
  </Accordion>

  <Accordion title="Do I need to keep the dashboard open while tests run?">
    No. The reporter sends results from CI whether or not anyone is watching. The Test Runs page is a viewer, not part of the delivery path. Open it whenever you like and the run is there, live or finished.
  </Accordion>

  <Accordion title="My test suite crashed halfway. Do I lose everything?">
    No. Results are sent as each test and step completes rather than in one batch at the end, so everything that ran before the crash is already recorded. The run shows the tests it completed and the point where it stopped.
  </Accordion>

  <Accordion title="Why does my run sit with no updates for a while?">
    A long-running test that produces no results is normal, for example a slow `waitFor` or a lengthy setup step. The reporter sends a periodic signal during quiet stretches so the run stays live rather than being treated as abandoned. Updates resume when the next test finishes.
  </Accordion>

  <Accordion title="Does disabling artifacts stop streaming?">
    No. `--no-artifacts` skips uploading screenshots, videos, and traces. Test results, timings, and errors still stream normally. Use it when you want faster runs or smaller uploads and do not need the visual evidence.
  </Accordion>
</AccordionGroup>

## Related

<CardGroup cols={2}>
  <Card title="Node.js CLI" icon="node-js" href="/cli/testdino-playwright-nodejs">
    Full CLI reference and configuration options
  </Card>

  <Card title="Test Runs" icon="play" href="/platform/playwright-test-runs">
    View and filter completed and active test runs
  </Card>

  <Card title="CI Integration" icon="microchip" href="/guides/playwright-github-actions">
    Configure GitHub Actions for automated test runs
  </Card>

  <Card title="Getting Started" icon="rocket" href="/getting-started">
    Set up TestDino and run your first tests
  </Card>
</CardGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.