Run the journey at the API, and keep the browser for the UI.

Playwright is the best tool for testing what users see. Most of a journey happens behind the screen, and an API flow tests that part faster.

One journey, tested two ways.

Log in, add a category, create a product, change its price. A Playwright test in the browser, and an API flow recorded with Stresseur.

Measured on one small shop app in a container sized like a CI runner, not a general benchmark. Read the method.

On that journey, 10 runs took 2.2 s as an API flow and 11.2 s in the browser. Same journey, same checks on the business logic behind the screen.

UI testAPI flow

Time for 10 runs

Each full command, browser or CLI start included.

11.2 s2.2 s

Passed, of 50 runs

Both stable. This app is too simple to flake.

50/5050/50

Button CSS class renamed

A UI-only change. The API did not change.

FailedPassed

Agent fix after an API change

Median of 3. Same coding agent, model and prompt.

61 s21 s

Faster to run, and harder to break for UI-only changes.

The UI test found the Edit button by its CSS class, so renaming the class broke it. Playwright's own best practices advise against that: a role-based locator would not depend on the class. Write your browser tests that way.

An API flow can't break on markup, because it never sees it. When the API does change, its failure names the step and the server's answer, so the fix starts at the cause.

What each layer is for.

Browser tests, with Playwright

Keep a small set, one per critical journey.

  • Layout: the button shows, the form works on a phone
  • Client-side logic that never reaches the API
  • Cross-browser behavior and accessibility
  • Third-party widgets in the page, like a payment form

API flows, with Stresseur

Recorded from real use, run on every pull request.

  • The journey's business logic, step by step
  • Auth, tokens and IDs passed between requests
  • Edge cases: bad input, limits, expired tokens
  • A check on every pull request, in seconds

Playwright can call your API too, if you'd rather write those steps by hand. Stresseur records them from the way you use your app, and wires the login token and each new ID into the next step for you.

Cover the journey behind the UI.

Keep Playwright for what users see. Let Stresseur run the journey behind it, on every pull request. Free for one repo. 14-day Team trial, no card.