Page MenuHomePhabricator

Investigate if we can speedup Cite browser tests
Closed, ResolvedPublic

Description

In our goal to get the gated extension browser test job run time under 10 minutes, we are starting to get really close. Almost all extensions been optimised and looking at the data we have, the cite browser tests takes almost 25% of the total runtime for the gated extensions browser tests (the time include npm install + running the tests).

Here's one example:
https://integration.wikimedia.org/ci/job/quibble-with-gated-extensions-selenium-php83/29662/console

And looking in the log displaying total time per extension:

00:09:27.747 │  65.604s │ Browser tests in 'mediawiki/core'                               │
00:09:27.747 │  30.644s │ Browser tests in 'mediawiki/extensions/AbuseFilter'             │
00:09:27.747 │  37.883s │ Browser tests in 'mediawiki/extensions/CampaignEvents'          │
00:09:27.747 │ 122.453s │ Browser tests in 'mediawiki/extensions/Cite'                    │
00:09:27.747 │  43.147s │ Browser tests in 'mediawiki/extensions/CommunityConfiguration'  │
00:09:27.747 │  13.001s │ Browser tests in 'mediawiki/extensions/ConfirmEdit'             │
00:09:27.747 │  16.303s │ Browser tests in 'mediawiki/extensions/Echo'                    │
00:09:27.747 │  33.934s │ Browser tests in 'mediawiki/extensions/GuidedTour'              │
00:09:27.747 │  14.776s │ Browser tests in 'mediawiki/extensions/Math'                    │
00:09:27.747 │  26.972s │ Browser tests in 'mediawiki/extensions/PageTriage'              │
00:09:27.747 │  21.751s │ Browser tests in 'mediawiki/extensions/ProofreadPage'           │
00:09:27.747 │  23.505s │ Browser tests in 'mediawiki/extensions/TemplateData'            │
00:09:27.747 │  33.822s │ Browser tests in 'mediawiki/extensions/VisualEditor'            │
00:09:27.747 │  19.107s │ Browser tests in 'mediawiki/skins/MinervaNeue'                  │
00:09:27.747 │ 502.955s │ Run all browser tests                                           │

Acceptance Criteria:

  • Investigate if there are any performance wins that can be done. The goal should be to be faster than core test (core run many more tests than cite). Document your findings.

Event Timeline

Change #1270180 had a related patch set uploaded (by Phedenskog; author: Phedenskog):

[mediawiki/extensions/Cite@master] browsertests: Try implement the browser test in wdio

https://gerrit.wikimedia.org/r/1270180

Change #1271931 had a related patch set uploaded (by Phedenskog; author: Phedenskog):

[mediawiki/extensions/Cite@master] cypress: Exclude specs for missing extensions before browser launch

https://gerrit.wikimedia.org/r/1271931

Change #1271931 merged by jenkins-bot:

[mediawiki/extensions/Cite@master] cypress: Exclude specs for missing extensions before browser launch

https://gerrit.wikimedia.org/r/1271931

Change #1281508 had a related patch set uploaded (by WMDE-Fisch; author: WMDE-Fisch):

[mediawiki/extensions/Cite@master] Cypress: Run Cypress tests in parallel

https://gerrit.wikimedia.org/r/1281508

Change #1281508 had a related patch set uploaded (by WMDE-Fisch; author: WMDE-Fisch):

[mediawiki/extensions/Cite@master] Cypress: Run Cypress tests in parallel

https://gerrit.wikimedia.org/r/1281508

FYI: We added a lot of improvements during the Wikimedia-Hackathon-2026 the latest part being the patch above. In there I see a runtime around 68sec now.

https://integration.wikimedia.org/ci/job/quibble-with-gated-extensions-selenium-php83/30921/console

Change #1282079 had a related patch set uploaded (by WMDE-Fisch; author: WMDE-Fisch):

[mediawiki/extensions/Cite@master] Cypress: Don't save just check the Wikitext

https://gerrit.wikimedia.org/r/1282079

Change #1282109 had a related patch set uploaded (by Phedenskog; author: Phedenskog):

[mediawiki/extensions/Cite@master] cypress: Replace hardcoded cy.wait calls with deterministic gates

https://gerrit.wikimedia.org/r/1282109

@WMDE-Fisch Aha cool, that is great! Then I'll wait for that to land, that should be enough for now.

Change #1282109 merged by jenkins-bot:

[mediawiki/extensions/Cite@master] cypress: Replace cy.wait calls with wait on elements

https://gerrit.wikimedia.org/r/1282109

Change #1282959 had a related patch set uploaded (by WMDE-Fisch; author: WMDE-Fisch):

[mediawiki/extensions/Cite@master] Cypress: Re-add wait when clicking the Citoid reuse

https://gerrit.wikimedia.org/r/1282959

Change #1282972 had a related patch set uploaded (by WMDE-Fisch; author: WMDE-Fisch):

[mediawiki/extensions/Cite@master] Cypress: Streamline Cite fixture and only check Wikitext

https://gerrit.wikimedia.org/r/1282972

Change #1282975 had a related patch set uploaded (by WMDE-Fisch; author: WMDE-Fisch):

[mediawiki/extensions/Cite@master] Cypress: Streamline Template fixture and only check Wikitext

https://gerrit.wikimedia.org/r/1282975

Change #1282959 merged by jenkins-bot:

[mediawiki/extensions/Cite@master] Cypress: Re-add wait when clicking the Citoid reuse

https://gerrit.wikimedia.org/r/1282959

Change #1282975 merged by jenkins-bot:

[mediawiki/extensions/Cite@master] Cypress: Streamline Template fixture and only check Wikitext

https://gerrit.wikimedia.org/r/1282975

Change #1282972 merged by jenkins-bot:

[mediawiki/extensions/Cite@master] Cypress: Streamline Cite fixture and only check Wikitext

https://gerrit.wikimedia.org/r/1282972

Change #1281508 merged by jenkins-bot:

[mediawiki/extensions/Cite@master] Cypress: Run Cypress tests in parallel

https://gerrit.wikimedia.org/r/1281508

This is the timings in the gated extensions job after the parallel plugin was merged:

Screenshot 2026-05-13 at 17.04.57.png (758×1 px, 194 KB)

Peter claimed this task.

I merged the parallel setup, that is enough for now.

Change #1282079 merged by jenkins-bot:

[mediawiki/extensions/Cite@master] Cypress: Streamline sub-ref test and only check Wikitext

https://gerrit.wikimedia.org/r/1282079