Skip to content

Performance testing next steps #1093

@swissspidy

Description

@swissspidy

From the below, top of mind are currently:

  • Lack of care around the dashboard (no alerts, people not checking it)
  • Outdated test suite (still testing TT3, not testing TT5, baseline is 6.1)
  • Stability
  • Project ownership

Improve core performance tests

  • Core
  • Gutenberg
  • Tests quality and stability
    • Alignment between core and Gutenberg
      • Core relies on GitHub Actions, while GB uses a sophisticated node script for running tests
      • GB regressions are often only found after merging into trunk (too late)
    • Improve demo content
      • Consider covering specific realistic use cases (e.g., homepage, page with large LCP image, etc)
      • Relevant for testing interactivity and layout stability
    • Performance Metrics Stabilization #849
      • Use WordPress Playground for more stability
        • Just for context, this was something that @dmsnell brought up, most recently in this Slack message
        • We could simulate different I/O latencies and intercept every DB and file operation
        • wp-now has some design problems that make it less favorable for testing (needs some refactoring first?)
  • Dashboard
    • Current custom dashboard is limited
    • Maybe build a more powerful dashboard using Grafana or similar
    • Lack of alerts for significant changes or broken workflow

Adoption

  • Run performance tests at scale using Tide?
  • More outreach (1:1, developer blog, etc.)
  • Directly reach out to a few bigger plugins to help them set up performance testing, setting a precedent for others
  • Consider moving GitHub Action to the WordPress GitHub org to make it more official

Typical reasons why plugin developers do not adopt similar performance tests:

  • They use a different testing setup (Codeception, Cypress, Puppeteer, k6) or CI (Bitbucket, GitLab)
  • Lack of tests setup in general (e.g. not even unit tests in place)
  • Focus is more on backend performance rather than frontend performance
  • Lack of resources for implementing additional kinds of testing
  • No testing strategy, e.g. even if they had the whole setup, they wouldn't know where to start
  • Metrics stability concerns
    • Makes it especially difficult to tie metrics change to specific code change

Sub-issues

Metadata

Metadata

Assignees

No one assigned

    Labels

    Needs DiscussionAnything that needs a discussion/agreement[Issue] OverviewProvides an overview of a specific project

    Type

    No type

    Projects

    Status

    Done 😃

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions