Support 'interaction to next paint' (or close equivalent) in performance testing

Created on 28 July 2023, over 1 year ago
Updated 3 October 2023, about 1 year ago

Problem/Motivation

Postponed on Add OpenTelemetry Application Performance Monitoring to core performance tests Fixed .

We can probably do someting to measure page interactions, which would help core/sites improve https://web.dev/inp/ and https://web.dev/fid/

Trying to think of what a minimum test case for core would look like I came up with the following:

1. AJAX-enable a view with a pager in core, the front page, taxonomy/term/%, admin/content

2. In the test, we'd need to subclass ::clickLink(), reset the performance log, then extract the first paint event from the log. We'd also need to figure out when to time from the link being clicked (unless this is also available from the performance log, which would be useful if it is).

You could then for example have a test with the AJAX-enabled pager, a test with a non-AJAX-enabled pager (so requiring a full page refresh), and we could revert the AJAX GET requests patch and test with that. Although the next paint for AJAX ought to be the spinner, so would expect this to be the same for POST and GET since it's measuring any initial feedback, not the end of the interaction.

Another possible example would be opening the media library on a node form.

Steps to reproduce

Proposed resolution

Remaining tasks

User interface changes

API changes

Data model changes

Release notes snippet

Feature request
Status

Active

Version

11.0 🔥

Component
PHPUnit 

Last updated about 23 hours ago

Created by

🇬🇧United Kingdom catch

Live updates comments and jobs are added and updated live.
Sign in to follow issues

Comments & Activities

Production build 0.71.5 2024