Skip to content

[ux] migrate synthetics journeys to scout#253366

Merged
dmlemeshko merged 23 commits intoelastic:mainfrom
dmlemeshko:migrate-ux-journeys-to-scout
Feb 26, 2026
Merged

[ux] migrate synthetics journeys to scout#253366
dmlemeshko merged 23 commits intoelastic:mainfrom
dmlemeshko:migrate-ux-journeys-to-scout

Conversation

@dmlemeshko
Copy link
Contributor

@dmlemeshko dmlemeshko commented Feb 17, 2026

Closes https://github.com/elastic/appex-qa-team/issues/716

Summary

This PR migrates all running @elastic/synthetics journeys in the ux plugin into Scout test specs.
Since Scout tests are always run, the opt-in pipeline step has been removed.

Journeys migrated

Original journey Scout spec
core_web_vitals.ts core_web_vitals.spec.ts
inp.journey.ts inp.spec.ts
page_views.ts page_views.spec.ts
url_ux_query.journey.ts ux_url_query.spec.ts
ux_client_metrics.journey.ts ux_client_metrics.spec.ts
ux_js_errors.journey.ts ux_js_errors.spec.ts
ux_long_task_metric_journey.ts ux_long_task_metrics.spec.ts
ux_visitor_breakdown.journey.ts ux_visitor_breakdown.spec.ts

Re-enabled (was commented out in original index.ts): page_views.ts

New Scout directory structure

x/test/scout/ui/
├── playwright.config.ts
├── fixtures/
│   ├── index.ts                  (extends ObltTestFixtures with UX page objects)
│   ├── constants.ts              (ES archive paths, default query params)
│   └── page_objects/
│       ├── index.ts
│       └── ux_dashboard.ts       (navigation, loading waits, chart locators)
└── tests/
    ├── global.setup.ts           (loads ES archives + INP test data)
    └── *.spec.ts                 (8 test specs)

ES archive fixtures remain at ux/e2e/fixtures/ (rum_8.0.0, rum_test_data).

Key fixes during migration

  • Updated Core Web Vitals labels: replaced deprecated "First input delay" with "Interaction to next paint" (INP replaced FID)
  • Fixed brittle selectors: replaced text-concatenation locators with data-test-subj selectors (e.g., pvBreakdownFilter for breakdown dropdown)
  • Fixed lazy-loaded sections: LoadWhenInView components (JS Errors, Visitor Breakdown) require scrolling the placeholder into the viewport to trigger the intersection observer
  • Fixed ambiguous text matching: used { exact: true } for browser legend labels that match multiple elements (e.g., "Chrome" vs "Chrome Mobile")
  • Removed buggy date picker override: original journeys set date range via URL params (2020–2021) then overrode to 2022 via date picker — fixture data only exists in 2020–2021, so the override was a latent bug
  • Guarded INP data against duplicates: added idempotency check before indexing INP test transactions

CI changes

  • Added ux to .buildkite/scout_ci_config.yml
  • Removed ux_plugin_e2e.yml pipeline and ux_synthetics_e2e.sh script
  • Removed ux/.buildkite/ flaky test pipeline
  • Cleaned up ftr_oblt_stateful_configs.yml

Made with Cursor

@dmlemeshko
Copy link
Contributor Author

/flaky scoutConfig:x-pack/solutions/observability/plugins/ux/test/scout/ui/playwright.config.ts:30

@kibanamachine
Copy link
Contributor

Flaky Test Runner

✅ Build triggered - kibana-flaky-test-suite-runner#10816

  • x-pack/solutions/observability/plugins/ux/test/scout/ui/playwright.config.ts x30

@dmlemeshko dmlemeshko added backport:version Backport to applied version labels v9.3.1 v9.2.6 release_note:skip Skip the PR/issue when compiling release notes labels Feb 21, 2026
@kibanamachine
Copy link
Contributor

Flaky Test Runner Stats

🎉 All tests passed! - kibana-flaky-test-suite-runner#10816

[✅] x-pack/solutions/observability/plugins/ux/test/scout/ui/playwright.config.ts: 30/30 tests passed.

see run history

@dmlemeshko dmlemeshko marked this pull request as ready for review February 23, 2026 09:32
@dmlemeshko dmlemeshko requested review from a team as code owners February 23, 2026 09:32
@botelastic botelastic bot added Team:obs-presentation Focus: APM UI, Infra UI, Hosts UI, Universal Profiling, Obs Overview and left Navigation Team:obs-ux-management labels Feb 23, 2026
@elasticmachine
Copy link
Contributor

Pinging @elastic/obs-presentation-team (Team:obs-presentation)

@elasticmachine
Copy link
Contributor

Pinging @elastic/obs-ux-management-team (Team:obs-ux-management)

@kibanamachine
Copy link
Contributor

Flaky Test Runner

✅ Build triggered - kibana-flaky-test-suite-runner#10867

  • x-pack/solutions/observability/plugins/ux/test/scout/ui/playwright.config.ts x30

Copy link
Contributor

@miguelmartin-elastic miguelmartin-elastic left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, thanks for addressing the comments 🚀

Copy link
Contributor

@csr csr left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Recent changes LGTM

@dmlemeshko dmlemeshko enabled auto-merge (squash) February 26, 2026 14:46
@dmlemeshko dmlemeshko disabled auto-merge February 26, 2026 14:48
@kibanamachine
Copy link
Contributor

Flaky Test Runner Stats

🟠 Some tests failed. - kibana-flaky-test-suite-runner#10867

[❌] x-pack/solutions/observability/plugins/ux/test/scout/ui/playwright.config.ts: 21/30 tests passed.

see run history

@dmlemeshko dmlemeshko requested a review from a team as a code owner February 26, 2026 16:21
@dmlemeshko
Copy link
Contributor Author

/flaky scoutConfig:x-pack/solutions/observability/plugins/ux/test/scout/ui/playwright.config.ts:25

@kibanamachine
Copy link
Contributor

Flaky Test Runner

✅ Build triggered - kibana-flaky-test-suite-runner#10871

  • x-pack/solutions/observability/plugins/ux/test/scout/ui/playwright.config.ts x25

@kibanamachine
Copy link
Contributor

Flaky Test Runner Stats

🟠 Some tests failed. - kibana-flaky-test-suite-runner#10871

[❌] x-pack/solutions/observability/plugins/ux/test/scout/ui/playwright.config.ts: 18/25 tests passed.

see run history

@dmlemeshko
Copy link
Contributor Author

/flaky scoutConfig:x-pack/solutions/observability/plugins/ux/test/scout/ui/playwright.config.ts:30

@kibanamachine
Copy link
Contributor

Flaky Test Runner

✅ Build triggered - kibana-flaky-test-suite-runner#10873

  • x-pack/solutions/observability/plugins/ux/test/scout/ui/playwright.config.ts x30

@dmlemeshko dmlemeshko enabled auto-merge (squash) February 26, 2026 18:09
@kibanamachine
Copy link
Contributor

Flaky Test Runner Stats

🎉 All tests passed! - kibana-flaky-test-suite-runner#10873

[✅] x-pack/solutions/observability/plugins/ux/test/scout/ui/playwright.config.ts: 30/30 tests passed.

see run history

@elasticmachine
Copy link
Contributor

💔 Build Failed

Failed CI Steps

Metrics [docs]

‼️ ERROR: no builds found for mergeBase sha [3c7ef04]

History

Copy link
Contributor

@smith smith left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Scout migration looks good. LGTM.

@dmlemeshko dmlemeshko merged commit 45aebb3 into elastic:main Feb 26, 2026
16 checks passed
@kibanamachine
Copy link
Contributor

Starting backport for target branches: 9.2, 9.3

https://github.com/elastic/kibana/actions/runs/22463974237

kibanamachine added a commit to kibanamachine/kibana that referenced this pull request Feb 26, 2026
Closes elastic/appex-qa-team#716

## Summary

This PR migrates all running `@elastic/synthetics` journeys in the ux
plugin into Scout test specs.
Since Scout tests are always run, the opt-in pipeline step has been
removed.

### Journeys migrated

| Original journey | Scout spec |
|---|---|
| `core_web_vitals.ts` | `core_web_vitals.spec.ts ` |
| `inp.journey.ts` | `inp.spec.ts` |
| `page_views.ts` | `page_views.spec.ts` |
| `url_ux_query.journey.ts` | `ux_url_query.spec.ts` |
| `ux_client_metrics.journey.ts` | `ux_client_metrics.spec.ts` |
| `ux_js_errors.journey.ts` | `ux_js_errors.spec.ts` |
| `ux_long_task_metric_journey.ts` | `ux_long_task_metrics.spec.ts` |
| `ux_visitor_breakdown.journey.ts` | `ux_visitor_breakdown.spec.ts` |

Re-enabled (was commented out in original index.ts): page_views.ts

### New Scout directory structure

```
x/test/scout/ui/
├── playwright.config.ts
├── fixtures/
│   ├── index.ts                  (extends ObltTestFixtures with UX page objects)
│   ├── constants.ts              (ES archive paths, default query params)
│   └── page_objects/
│       ├── index.ts
│       └── ux_dashboard.ts       (navigation, loading waits, chart locators)
└── tests/
    ├── global.setup.ts           (loads ES archives + INP test data)
    └── *.spec.ts                 (8 test specs)
```

ES archive fixtures remain at `ux/e2e/fixtures/` (rum_8.0.0,
rum_test_data).

### Key fixes during migration
- Updated Core Web Vitals labels: replaced deprecated `"First input
delay"` with `"Interaction to next paint"` (INP replaced FID)
- Fixed brittle selectors: replaced text-concatenation locators with
`data-test-subj` selectors (e.g., `pvBreakdownFilter` for breakdown
dropdown)
- Fixed lazy-loaded sections: `LoadWhenInView` components (JS Errors,
Visitor Breakdown) require scrolling the placeholder into the viewport
to trigger the intersection observer
- Fixed ambiguous text matching: used `{ exact: true }` for browser
legend labels that match multiple elements (e.g., `"Chrome"` vs `"Chrome
Mobile"`)
- Removed buggy date picker override: original journeys set date range
via URL params (2020–2021) then overrode to 2022 via date picker —
fixture data only exists in 2020–2021, so the override was a latent bug
- Guarded INP data against duplicates: added idempotency check before
indexing INP test transactions

### CI changes

- Added ux to `.buildkite/scout_ci_config.yml`
- Removed `ux_plugin_e2e.yml` pipeline and `ux_synthetics_e2e.sh` script
- Removed `ux/.buildkite/` flaky test pipeline
- Cleaned up `ftr_oblt_stateful_configs.yml`

Made with [Cursor](https://cursor.com)

---------

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
(cherry picked from commit 45aebb3)
@kibanamachine
Copy link
Contributor

💔 Some backports could not be created

Status Branch Result
9.2 Backport failed because of merge conflicts
9.3

Note: Successful backport PRs will be merged automatically after passing CI.

Manual backport

To create the backport manually run:

node scripts/backport --pr 253366

Questions ?

Please refer to the Backport tool documentation

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backport:version Backport to applied version labels release_note:skip Skip the PR/issue when compiling release notes Team:obs-presentation Focus: APM UI, Infra UI, Hosts UI, Universal Profiling, Obs Overview and left Navigation Team:obs-ux-management v9.2.6 v9.3.1 v9.4.0

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants