commit | 8bcf60828725f8b193208770a5eb183b80bc8b04 | [log] [tgz] |
---|---|---|
author | Primiano Tucci <primiano@google.com> | Fri Jun 11 17:15:22 2021 +0100 |
committer | Primiano Tucci <primiano@google.com> | Tue Jun 15 18:47:16 2021 +0000 |
tree | 1cd38b085705a8afe85025dd49f0f139d778285f | |
parent | cbcb91f62841298322bd1e650521cb16919e2285 [diff] |
UI: Add initial puppeteer-based integrationtests This CL introduces support for UI integrationtests. Those tests are based on puppeteer (Chrome headless) and work by injecting user actions into the real UI, capturing screenshots and diffing them against reference ones. Each test() unit in ui_integrationtests.ts automatically captures and diffs the screenshot at the end of the run. In case of failures, diffs are uploaded to the CI GCS bucket (gs://perfetto-ci-artifacts/$key/). I got to a state where tests can be run both on Linux and Mac successfully. There are few rendering differences between the two, due to the fact that font rendering seems platform specific. But with enough tweaks the difference can be contained to sub-pixel antialiasing and can be dealt with a threshold in the diff algorithm. Bug: 190075400 Change-Id: I5fb35c41ba5f95a4761465b9d0128edd92414510
Perfetto is a production-grade open-source stack for performance instrumentation and trace analysis. It offers services and libraries and for recording system-level and app-level traces, native + java heap profiling, a library for analyzing traces using SQL and a web-based UI to visualize and explore multi-GB traces.
See https://perfetto.dev/docs or the /docs/ directory for documentation.