# How to Read a TestOwl Test Report

:::lead
A Report contains the complete results of a single test run — its overall status, every test case and step, screenshots, a video replay, and console and network logs. It's the primary place to understand what happened and investigate failures.
:::

## Opening a Report

Reports are created as soon as a run starts. Open one by clicking a run in [Run History](/docs/running-and-results/run-history). The address of a report includes the run ID, so you can share the link with teammates who have access to the project.

## The Report layout

A report has two parts: a **sidebar** on the left and the main **panel** on the right.

### Sidebar

The sidebar lists the **Summary** and every test case in the run, grouped so you can find them easily.

- **Search tests…** filters the list by name.
- **Filter** by status to show, for example, only failed tests.
- **Collapse all** folds the groups away.

Click **Summary** or any test case to open it.

## Summary

![Report Overview](/images/running-and-results/reports/report-overview.png)

The Summary gives you the whole run at a glance:

- **Total Cases**, **Passed**, **Failed**, **Running** (queued or in progress), and **Skipped** (conditionally excluded).
- **Started At**, **Ended At**, **Total Duration**, and **Executed By** — with a **Scheduled** tag when a [schedule](/docs/running-and-results/schedules) started the run.
- The run's configuration, such as the environment used.

### Export PDF

Click **Export PDF** to download the report as a formatted PDF — a cover with the run status and pass rate, then details for every test case — that you can share or archive. It includes a link back to the interactive report.

- The button is available once the run has **finished**.
- PDF export is included on **Pro**, **Scale**, and the Trial. On **Starter** the button shows a lock and takes you to the plan page. See [Plans & Usage](/docs/team-and-account/plans-and-usage).

### Live updates

While a run is in progress the report refreshes itself every **30 seconds**, and a small timer shows when the next update is due. Updating stops once the run reaches a final state.

## Test case details

Select a test case to see how it ran.

![Test Case Report](/images/running-and-results/reports/test-case-report.png)

The header shows the test case's name and status, with counts of passed, failed, and skipped steps, and a **Watch Replay** button that opens the video of the run. If the test case has since been deleted, the report says so.

The details are organised into three tabs.

| Tab | What you'll find |
| --- | --- |
| **Steps** | Every step in execution order, with its status. Steps from [Flows](/docs/building-tests/flows) are expanded inline so you can see exactly what ran. |
| **Images** | The screenshots captured during the run, step by step. |
| **Logs** | **Network** requests and **Console** messages from the browser. A red marker on the tab tells you the logs contain errors. |

### Steps

Click a step to open its detail drawer:

- **Properties** — how the step was configured: the target element, input values, expected result, and so on.
- **Step Info** — what happened when it ran, including the error message if it failed.
- **Before action** and **After action** screenshots so you can compare the page before and after the step.

### Logs

Switch between **Network** and **Console**:

- **Network** lists each request with its **Method**, **Status**, **URL**, and **Time**. Click a request to open **Network Details**, with its request and response headers, query parameters, and request and response bodies.
- **Console** lists browser console messages with their **Message** and **Location**.

Sensitive areas of screenshots and video are hidden automatically according to the [Masking Rules](/docs/data/masking-rules) on the environment.

## Expired reports

Screenshots, videos, and logs are kept for your plan's retention period. After that the run remains in Run History, but opening it shows **Report expired** — the detailed data has been removed.

## Best practices

- Start with **Failed** tests using the sidebar filter, and read the failing step's error and screenshots.
- Use **Watch Replay** to see the failure the way the browser did.
- Check **Logs** for failed network requests or console errors.
- Configure [Masking Rules](/docs/data/masking-rules) before sharing reports outside your team.

## Next steps

::::cardgrid
:::card{title="Run History" href="/docs/running-and-results/run-history"}
Browse every test run in your project.
:::

:::card{title="Dashboard" href="/docs/getting-started/dashboard"}
Monitor project-wide execution trends and health.
:::

:::card{title="Masking Rules" href="/docs/data/masking-rules"}
Protect sensitive information captured in screenshots and videos.
:::
::::
