Skip to content

Reports and Session Replay

jann edited this page Sep 14, 2026 · 4 revisions

Reports and Session Replay

Every automated run finishes into one report, whatever triggered it — the run bar, the CLI, a schedule, or MCP. Reports work the same for Playwright and Cucumber.

The reports list

/reports shows every run for the project, newest first, with an overall pass rate and a trend strip. A run that failed at least once but ended green is flagged flaky here without loading the report — see Retrying Flaky Tests.

The report page

  • Header — pass/fail, when, who started it, browser, how many runners / workers, and the total run time as h:m:s.
  • Failures & flaky summary — a list at the top of every failed or flaky report; click an entry to jump straight to that scenario further down the page.
  • Run logs — the raw stdout of the run, collapsed by default.
  • Per feature / spec — each suite with its pass/fail state and source file.
  • Per scenario / test — expand to see every step with its result and duration. Cucumber shows the Gherkin keyword (Given / When / Then); Playwright shows the test.step labels.
  • A scenario that failed then passed on retry is marked flaky so it doesn't hide in a green run.
  • A back-to-top button appears once you scroll down a long report.

Export a report as CSV or as JSON from the report page.

Failure screenshots

A screenshot taken at the moment a scenario failed shows next to it on the report page — click to enlarge. If the file is missing (an old report, or one whose screenshot was deleted), the report still renders fine; the screenshot element just doesn't appear. This is also what an AI Analysis sees when it investigates a failing report — a real image, not just the error text.

Session replay

Plum records the page itself as the test runs — the DOM at every moment via rrweb, not a screen capture. Open a scenario's Replay to:

  • Scrub the timeline, or click a step in the left step rail to jump straight to that moment.
  • Play at 0.5× / 1× / 2×.
  • See the exact browser state at a failed step.

Multiple tabs and multiple parallel workers are each recorded and selectable. Recording is wired into the scaffold (fixtures/plum.ts for Playwright, utils/ for Cucumber) — leave those files alone and every run gets replay for free.

The element inspector

Inside a replay, turn on Inspect element and click anything on the recorded page. Plum shows:

  • the element's markup, and
  • a ranked list of locators — data-test, role + name, CSS path, XPath — with the sturdiest one marked recommended, in Playwright's own order of preference.

Copy a locator straight into a step. There's also a DOM tab to search the recorded DOM by text, CSS selector or XPath.

Live runs

While a run is still going, open it from the run bar to watch the browser viewport stream next to the test output as it prints. Cancel a run from here without waiting for a timeout.

Retention

Old reports are pruned on a schedule (report retention runs on the server). Reports, recordings and screenshots are never included in a backup — pg_dump the Postgres volume (plus data/screenshots/) if you need to keep report history.

Clone this wiki locally