> ## 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.

# Print and Export a Playwright Test Run Report

> Turn a Playwright test run into a shareable PDF: choose the test cases, filter them, add your own summary, and save from the browser.

Print / Export renders a test run as a PDF report. You choose which test cases appear, add your own summary and recommendation, and save the file from the browser print dialog.

## Open the Report

On a test run, open the `...` menu beside **Debug with AI** and select **Print / Export**. The report opens in a new window with 2 panes:

| Pane         | Contents                                                                               |
| :----------- | :------------------------------------------------------------------------------------- |
| Left sidebar | Your text fields, the section toggles, filters, and the test case tree. Never printed. |
| Right        | The report itself, at the width it prints.                                             |

The toolbar reads **Report Preview** with the run number, and holds the **Print & PDF** button.

## What the Report Contains

Sections are numbered in the order they appear. Turning one off renumbers the rest, so the numbering always runs in sequence.

| Section                     | Shows                                                                                                                                                   |
| :-------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Report overview             | Project, run, branch, commit, test period, duration, environment, who triggered the run, and the reviewer you name                                      |
| Executive summary           | One generated sentence (`Out of 26 results across 3 browsers, 1 passed, 25 failed, 0 flaky, 0 skipped. Pass rate 4%.`) followed by your own text        |
| Results at a glance         | Totals per status with a pass-rate chart, plus a per-browser breakdown when the run used more than 1 browser                                            |
| Test case overview          | One numbered row per test case: name, area, browser, status, duration                                                                                   |
| Test case details           | One block per test case, grouped by area: steps, the failure reason, expected and received values, up to 3 screenshots, and the code around the failure |
| Defect summary              | Failures grouped by the error they share, each with the number of test cases affected and their names                                                   |
| Coverage by area            | Totals and pass rate per spec file                                                                                                                      |
| Recommendation & next steps | Your own text. Appears once you write something.                                                                                                        |

Area is the spec file the test case lives in. A test case that passed on a retry reads **Passed (retry 2/2)**, never a plain pass. A test case that was interrupted counts as failed; one still running counts as in progress.

Failures are summarised rather than pasted. A reader sees a readable reason (`Assertion failed: toBeVisible`, `Timed out after 8s`) with the expected and received values beside it. Playwright's retry transcript never reaches the PDF, so request headers and session cookies stay out of the file.

Each test case name links to that test case inside the run. The link works for readers who are signed in to TestDino and has no effect for anyone else.

### Turn Sections Off

The sidebar carries a checkbox for **Test case overview**, **Test case details** (with **Steps**, **Screenshots**, and **Code around the failure** under it), **Defect summary**, and **Coverage by area**. Report overview, executive summary, and results at a glance are always included.

## Choose Which Test Cases Appear

The report opens with every test case selected. The sidebar tree groups them by spec file, with a checkbox on each area and each test case. Ticking an area ticks everything under it.

* The counter reads `n of N selected`.
* **Select all shown** and **Clear shown** act on what the filters currently show.
* Unticking a test case removes it from every section: the tables, the details, the summary sentence, the defect summary, and the coverage rows. The report never states a number that disagrees with what is in it.

Your selection is not saved. Closing the window returns the next report to every test case selected.

## Filter the Test Case List

Filters narrow the tree and set the selection to match, so what you filter is what prints.

| Filter     | Values                                                                           |
| :--------- | :------------------------------------------------------------------------------- |
| Browser    | The browsers this run used. Shown when there is more than 1.                     |
| Status     | Passed, Failed, Flaky, Skipped, In progress                                      |
| Tags       | The Playwright tags present in this run                                          |
| Error type | The failure categories present in this run, such as Assertion failure or Timeout |
| Search     | Matches the test case name                                                       |

**In progress** appears only while the run still has test cases running. Tags and error types list the values present in this run, so a filter you do not see is one the run has no values for.

## Add Your Own Summary

4 fields in the sidebar are yours to write:

| Field                       | Appears in                   |
| :-------------------------- | :--------------------------- |
| Title                       | The cover                    |
| Reviewed by                 | Report overview              |
| Executive summary           | Below the generated sentence |
| Recommendation & next steps | The closing section          |

The text is remembered in your browser for this run, so a reload keeps it. It is not shared with teammates and does not travel with the run.

## Save as PDF

Select **Print & PDF**, then choose **Save as PDF** as the destination in your browser's print dialog. The preview is laid out at print width, so the PDF matches what you see.

On a large run the toolbar counts the test cases still loading (`Loading details 120/200`). **Print & PDF** stays disabled until that finishes, so the file always carries every detail the report shows. Above 300 selected test cases the sidebar notes that the report is large.

A run that has not finished carries a banner reading that results are partial, with the time the report was taken. On a very large run, a banner names how many test cases the report covers.

## Automated Evidence in a Manual Run Report

A manual run report shows the same failure detail for any test case linked to a Playwright test. **Automated evidence** is on by default in the manual run's **Sections** menu: linked test cases then carry the result, steps, screenshots, and failure detail they would have in the automated report. Manual test cases and every count on the page are unchanged.

## Related

<CardGroup cols={2}>
  <Card title="Test Runs" icon="list-check" href="/platform/playwright-test-runs">
    Read a test run: header actions, tabs, and shards
  </Card>

  <Card title="Run Errors" icon="triangle-exclamation" href="/platform/playwright-test-runs/errors">
    Failures grouped by the error they share
  </Card>

  <Card title="Manual Runs" icon="clipboard-check" href="/test-management/manual-testing/manual-runs">
    Track manual and automated test cases in one run
  </Card>

  <Card title="Scheduled Reports" icon="file-chart-column" href="/guides/automated-playwright-reports">
    Email a recurring PDF summary on a schedule
  </Card>
</CardGroup>
