Cut Chrome/Firefox/iPhone/iPad UI tests over to Device Farm#72522
Cut Chrome/Firefox/iPhone/iPad UI tests over to Device Farm#72522davidsbailey merged 4 commits intostagingfrom
Conversation
Wires devicefarm_desktop_ui and devicefarm_mobile_ui into
rake test:ui_all so they run alongside SauceLabs Safari and Eyes.
Renames the SauceLabs UI task regular_ui to saucelabs_ui (provider
is the only thing left that distinguishes it from the Device Farm
suites), drops its parallelism from 50 to 15, and narrows it to
-c Safari since Chrome/Firefox/iPhone/iPad now run on Device Farm.
Removes the unused devicefarm_ui combined task.
Reframes the user-visible labeling so oncall sees suites by the
browsers they cover, not the provider:
- saucelabs_ui => "Safari"
- devicefarm_desktop_ui => "Chrome + Firefox"
- devicefarm_mobile_ui => "Mobile"
- eyes_ui => "Eyes"
test_type_label and status_page_filename now derive from the active
browser configs instead of the device_farm flag, yielding stable
filenames test_status_{Safari,Chrome_Firefox,Mobile,Eyes}.html and
matching slack message prefixes. STATUS_PAGES_NAVIGATION lists all
four pages so the cross-page navigation row links to the full set.
The _df disambiguator on test_run_identifier is no longer needed --
no non-eyes browser runs on both providers anymore -- so it and its
JS counterpart in test_status.js (plus the now-unused #device-farm
hidden DOM input in test_status.haml) come out together.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
tagging @sureshc for review. heads up @cat5inthecradle that this forces us onto latest browser versions for Chrome and Firefox, since Device Farm only supports |
Replaces the single-line description (which still claimed "all browsers configured in browsers_saucelabs.json") with a table showing the four test:ui_all suites, the provider backing each, and the browsers each covers. Notes that providers stay out of the user-visible labeling. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
test_type_label now returns "Safari UI" / "Chrome + Firefox UI" /
"Mobile UI" for the three non-eyes suites (Eyes is unchanged --
"Eyes UI Test Status" reads awkwardly and Eyes was its own branch
in the helper before this change anyway). That propagates through
to:
- <title> and <h1>: "Safari UI Test Status", etc.
- Slack banners: "SAFARI UI TEST REPORT", "*SAFARI UI* TESTS PASSED"
- Cross-page nav row: "Safari UI | Chrome + Firefox UI | Mobile UI | Eyes"
Status page filenames pick up the suffix the same way:
test_status_{Safari_UI,Chrome_Firefox_UI,Mobile_UI,Eyes}.html.
STATUS_PAGES_NAVIGATION and the README's DTT table follow.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
| | Safari UI | SauceLabs | `Safari` (`browsers_saucelabs.json`) | | ||
| | Chrome + Firefox UI | AWS Device Farm | `Chrome`, `Firefox` (`browsers_device_farm.json`) | | ||
| | Mobile UI | AWS Device Farm | `iPhone`, `iPad` (`browsers_device_farm.json`) | | ||
| | Eyes | SauceLabs | `Chrome`, `iPhone` (Applitools visual diff, `@eyes` / `@eyes_mobile`) | |
There was a problem hiding this comment.
Could we add some clarity and explain that we're running macOS Safari in SauceLabs, and mobile (iOS/iPadOS) Safari in Device Farm? There are a bunch of places where we could replace "Safari UI" with "macOS Safari UI" and "Mobile UI" with "Mobile Safari UI", so not sure it's worth making this type of change when we have a more pressing goal of completing this transition quickly.
| | Safari UI | SauceLabs | `Safari` (`browsers_saucelabs.json`) | | |
| | Chrome + Firefox UI | AWS Device Farm | `Chrome`, `Firefox` (`browsers_device_farm.json`) | | |
| | Mobile UI | AWS Device Farm | `iPhone`, `iPad` (`browsers_device_farm.json`) | | |
| | Eyes | SauceLabs | `Chrome`, `iPhone` (Applitools visual diff, `@eyes` / `@eyes_mobile`) | | |
| | macOS Safari UI | SauceLabs | `macOS Safari` (`browsers_saucelabs.json`) | | |
| | Chrome + Firefox UI | AWS Device Farm | `Chrome`, `Firefox` (`browsers_device_farm.json`) | | |
| | Mobile Safari UI | AWS Device Farm | `iPhone Safari`, `iPad Safari` (`browsers_device_farm.json`) | | |
| | Eyes | SauceLabs | `Chrome`, `iPhone` (Applitools visual diff, `@eyes` / `@eyes_mobile`) | |
There was a problem hiding this comment.
Thank you for the feedback Suresh! I've added some clarifying info to the "Browsers" column to clarify macOS, Windows, and Safari as needed.
I haven't changed the Suite name here because I want to keep it consistent with everywhere else we show the suite name (slack messages, status pages), and I don't want to clutter up those places with extra wording just yet.
I suspect that most of the team will intuit that an unqualified Safari means desktop since that's been the convention on the actual browser config name for quite a while now, but if there turns out to be confusion about it then I'd be happy to add more wording at that time.
Starts running UI tests in Device Farm alongside SauceLabs within
rake test:ui_all. Renames the SauceLabs UI taskregular_uitosaucelabs_ui, drops its parallelism from 50 to 15, and narrows it to-c Safarisince Chrome/Firefox/iPhone/iPad now run on Device Farm. Removes the unuseddevicefarm_uicombined task.Reframes the user-visible labeling so oncall sees suites by the browsers they cover, not the provider:
saucelabs_ui => "Safari UI"devicefarm_desktop_ui => "Chrome + Firefox UI"devicefarm_mobile_ui => "Mobile UI"eyes_ui => "Eyes"slack message and status page prefixes also now derive from the active browser configs (Safari, Chrome + Firefox, etc) instead of the device_farm flag, making it easier to find test failures for a certain browser without having to remember whether it runs on SauceLabs or Device Farm. The cross-page navigation row also now links to all 4 pages.
The
_dfdisambiguator in the_output.htmlfilenames is no longer needed and has been removed.Screenshots
status page navigation
Screen.Recording.2026-05-05.at.2.42.34.PM.mov
slack output
Testing story
Dave-M4:~/src/cdo (test *)$ bundle exec rake test:ui_allrake test:devicefarm_uion the test machine. All Device Farm Desktop UI tests passed (slack). 2 Mobile UI tests failed (slack), but then passed after a total of 3 reruns.Deployment notes
to do on the test machine after DTT:
test_status*.htmlpages, to ensure no one is relying on old bookmarksbin/reset_flakiness, to clear out the slew of errors from multiple saucelabs problems in the past week