-
Notifications
You must be signed in to change notification settings - Fork 8.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Restore webdriver-based functional test runner driver #31388
Conversation
[Restore webdriver-based functional test runner driver](/elastic/kibana/pull/31388/commits/65fed1b3529a2e88dc8e10304f44662251b580a4)
[Restore webdriver-based functional test runner driver](/elastic/kibana/pull/31388/commits/65fed1b3529a2e88dc8e10304f44662251b580a4)
log.debug(`Find.existsByDisplayedByCssSelector('${selector}') with timeout=${timeout}`); | ||
return await this.exists(async (driver) => { | ||
const elements = wrapAll(await driver.findElements(By.css(selector))); | ||
return await this.filterElementIsDisplayed(elements); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Filtering after the findElements()
call like this means that the timeout isn't used if the findElements()
call returns elements but none of them are displayed, I'm pretty sure this is the reason we're seeing flakiness like https://kibana-ci.elastic.co/job/elastic+kibana+master/66/JOB=x-pack-ciGroup6,node=immutable/testReport/junit/X-Pack%20Chromium%20Functional%20Reporting%20Tests/x-pack_test_reporting_functional_reporting%C2%B7js/reporting_app_Reporting_Dashboard_Print_PDF_button_becomes_available_when_saved/
I tried to fix this like so https://github.com/elastic/kibana/pull/31368/files#diff-6238cdd3f41d65e4fddb017713976292R209, but it caused other timeout issues, since calls to exist()
were waiting for longer, and subsequent timeout calls were missing temporary elements like the success toast here:
[00:20:37] │ debg Waiting up to 20000ms for flyout closed...
[00:20:37] │ debg TestSubjects.exists(dashboardAddPanel)
[00:20:37] │ debg Find.existsByDisplayedByCssSelector('[data-test-subj~="dashboardAddPanel"]') with timeout=2500
[00:20:48] │ debg Find.findByCssSelector('.euiToast') with timeout=10000
...
[00:20:58] └- ✖ fail: "dashboard app using current data dashboard snapshots compare area chart snapshot"
[00:20:58] │ TimeoutError: Waiting for element to be located By(css selector, .euiToast)
[00:20:58] │ Wait timed out after 10033ms
[00:20:58] │ at node_modules/selenium-webdriver/lib/webdriver.js:834:17
[00:20:58] │ at process._tickCallback (internal/process/next_tick.js:68:7)
4779b00
to
7f1ea2f
Compare
532945b
to
4770993
Compare
💔 Build Failed
|
retest |
💚 Build Succeeded |
This comment has been minimized.
This comment has been minimized.
|
💔 Build Failed
|
Jenkins, please test this so we can track down more flaky tests |
💔 Build FailedThis one appears to be related to the issue described in #31388 (comment)
|
Jenkins, please test this so we can track down more flaky tests |
💚 Build Succeeded |
Jenkins, please test this so we can track down more flaky tests |
Reopening as #31446 so that the root branch is on elastic/kibana and we can open PRs to it to focus on different ciGroups. |
💔 Build Failed |
Reopening #26477, we'll take another shot and this time run the tests even more often to make sure we address even more sources of flakiness before merging.
Note: we're running all of the functional tests 6 times per build. Hopefully this will help us see flakiness before we merge into master.