Skip to content

Releases: denodell/playwright-soak-test

Release list

v0.2.0

Choose a tag to compare

@denodell denodell released this 12 Oct 00:25
abe7d88

When a soak test fails, it now tells you what caused the memory leak, e.g.:

  A listener on window is still registered. Its callback `onResize` still references the
  <section class="report-drawer"> element.

    window → EventListener → onResize() → <section class="report-drawer">

It does this by comparing a heap snapshot at the start of the run with another at the end, and following the chain of references back to the function or variable in your code.

New options

  • diagnose: 'on-failure' (default), or 'always' or 'off'
  • keepSnapshots: attaches both snapshots to the test result, so you can open them in DevTools for further inspection
  • diagnoseTimeout: how long the snapshotting process can take (default=60s)

Other changes

  • Running npm install in a fresh clone of the repo now installs Chromium, so the tests run straight away. Thanks to @brentguf for #1.
  • A long run whose DOM / listener count use climbed and then stopped is now labeled climbed early, then leveled off instead of noisy.
  • formatSoakReport(result) returns the report as text, so you can log a soak.measure() result to the Terminal.
  • Whole numbers lose the decimal in the output: "Each pass leaks 40 nodes and 1 listener."
  • FIX: Fewer false alarms. Each reading now has Chrome update the page's layout first, so it no longer counts elements a flow has just removed.

Upgrading from 0.1.0

No changes needed. Because we now take snapshots, this adds a few seconds to a minute depending on the size of your web app. You can disable this with diagnose: 'off' in the options. Readings can come out slightly lower than before.

Full list is in the changelog.