BDD Tests are failing due to Chrome session not being able to create on CI pipeline
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 25/100
- Tipo di issue
- Bug
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Ferma
- Stack tecnologico
- docker, github-actions, javascript, node.js
- Ambito
- ci-cd, testing-qa
Direzione di ricerca
Inizia da workflow.yml e dalle impostazioni WebDriver in test.codecept.conf.js; esegui il comando npx codeceptjs mostrato e analizza i log di avvio del servizio hub/chrome e di creazione della sessione. Il lavoro è completato quando l'esecuzione CI @store crea una sessione Chrome e completa la verifica del checkout senza il timeout di WebDriver.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
What are you trying to achieve?
Running tests successfully on our GitHub action Runner : ubuntu-latest container. It was working all good but broke 8 days ago (14th oct 2021)
I tried investigating & observed both this docker images are updated on same date, but reverting them back to older version selenium/hub:: 3.141 & selenium/node-chrome:93.0 didn't helped, got same error attached below
hub:
image: selenium/hub:latest
chrome:
image: selenium/node-chrome:latest
Note : Tests run fine on local machine with same configuration running on CI pipeline.
What do you get instead?
Checkout page verification on Store --
[1] Starting recording promises
**Verifying checkout page - Annual, prepaid @store
[1] Error | Error: Can't connect to WebDriver.
Error: Failed to create session.
Timeout awaiting 'request' for 120000ms
Please make sure Selenium Server is running and accessible
Error: Can't connect to WebDriver.
Error: Failed to create session.
Timeout awaiting 'request' for 120000ms**
Please make sure Selenium Server is running and accessible
Given I am on test site
I am on page "/"
[1] Error | TypeError: Cannot read property 'url' of undefined
[1] Error | TypeError: Cannot read property 'url' of undefined
[1] Error | TypeError: Cannot read property 'url' of undefined
[1] Starting session
[1] Stopping recording promises
› Test failed, try to save a screenshot
› Screenshot has been saved to /__w/web-project-ui-automation-test-framework/web-project-ui-automation-test-framework/output/Verifying__d2382720-3a95-4e87-a5d9-466410c33dc3.failed.png
› <TypeError: Cannot read property 'saveScreenshot' of undefined>
✖ FAILED in 14ms
Provide test source code if related
workflow.yml
name: Build & Test
on:
push:
branches: [master]
pull_request:
branches: [master]
jobs:
build:
runs-on: ubuntu-latest
container:
image: node:14.4
options: --network-alias testHost
env:
NODE_ENV: test
SELENIUM_HUB_HOST: hub
TEST_HOST: testHost
services:
hub:
image: selenium/hub:latest
chrome:
image: selenium/node-chrome:latest
env:
HUB_HOST: hub
HUB_PORT: 4444
strategy:
matrix:
node-version: [14.4]
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v1
with:
node-version: ${{ matrix.node-version }}
registry-url: 'https://npm.pkg.github.com'
scope: '@xyz-technologies'
- name: NPM install
run: npm install
env:
NODE_AUTH_TOKEN: ${{ secrets.GITHUB_PAT }}
- name: Run Store Tests
run: npx codeceptjs run --grep @store --reporter mocha-multi --profile https://store.xyz.com/ --config test.codecept.conf.js
- name: Archive mochawesome Test Report
if: ${{ always() }}
uses: actions/upload-artifact@v2
with:
name: mochawesome-test-report
path: ./output
Details
- CodeceptJS version: "3.1.2",
- NodeJS Version: 14.4
- Operating System: Linux ubuntu-latest
- puppeteer || webdriverio || testcafe version (if related) webdriverio
- Configuration file:
const { setHeadlessWhen } = require('@codeceptjs/configure');
const { WAIT_FOR } = require('../constants');
const {
CheckElementPresenceHelper,
VisualTestingHelper,
RelativePathResembleHelper,
} = require('../helpers/index');
require('dotenv').config();
setHeadlessWhen(process.env.CI);
exports.config = {
output: './output',
timeout: WAIT_FOR.STEP, // applies to a single step definition, which should not take longer to run, than specified
helpers: {
CheckElementPresenceHelper,
VisualTestingHelper,
assertWrapper: {
require: require.resolve('codeceptjs-assert'),
},
WebDriver: {
browser: 'chrome',
url: process.env.profile,
coloredLogs: true,
show: true,
restart: true,
host: process.env.host || 'hub',
waitForTimeout: WAIT_FOR.ELEMENT, // wait for the element to reach the state (enabled, existing)
timeouts: {
pageLoad: WAIT_FOR.PAGE, // wait for the page loading to complete
},
smartWait: WAIT_FOR.IMPLICIT, // implicit wait set, when searching for a specific single element, is disables in all other cases (will wait for additional 5 sec)
desiredCapabilities: {
'goog:chromeOptions': {
args: [
'--disable-gpu',
'--window-size=1500,1300',
'--no-sandbox',
'--disable-extensions',
'--dns-prefetch-disable',
'--disable-dev-shm-usage',
],
},
},
},
ResembleHelper: {
require: RelativePathResembleHelper.require,
screenshotFolder: './output/',
relativeToHtmlScreenshotFolder: './',
baseFolder: './output/tests/screenshots/base/',
diffFolder: './output/tests/screenshots/diff/',
relativeToHtmlBaseFolder: './tests/screenshots/base/',
relativeToHtmlDiffFolder: './tests/screenshots/diff/',
},
Mochawesome: {
uniqueScreenshotNames: 'true',
},
},
mocha: {
reporterOptions: {
'codeceptjs-cli-reporter': {
stdout: '-',
options: {
verbose: true,
steps: true,
debug: true,
},
},
mochawesome: {
stdout: './output/console.log',
options: {
steps: true,
reportDir: './output',
json: false,
reportFilename: 'Automated_Test_Run_Report',
inlineAssets: 'true',
saveHtml: 'true',
overwrite: 'true',
},
},
},
},
bootstrap: null,
teardown: null,
hooks: [],
gherkin: {
features: './features/*.feature', // feature files location
steps: './steps/*.js', // step definitions location
},
plugins: {
screenshotOnFail: {
enabled: true, // if true take screenshot of failed scenarios
fullPageScreenshots: false,
},
retryFailedStep: {
enabled: true, // if true rerun failed tests
retries: 2,
ignoredSteps: ['compareActualAndBaseScreenshots'],
},
},
rerun: {
// run 4 times until 1st success
minSuccess: 1,
maxReruns: 2,
},
name: 'codeceptTest',
};
Please suggest what could be wrong..
- Lingua principale
- JavaScript
- Stelle
- 4.2k
- Fork
- 756
- Merge medio
- 2g 9h
- PR unite (30g)
- 16
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di codeceptjs/CodeceptJS
-
stale
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
codeceptjs/CodeceptJS#5420 · 1 commento ·
-
stale
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
codeceptjs/CodeceptJS#5358 · 1 commento ·
-
stale
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
codeceptjs/CodeceptJS#4958 · 10 commenti · 2 reazioni ·
-
stale
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 72/100
codeceptjs/CodeceptJS#4778 · 3 commenti ·
-
stale
Difficoltà 4/5 3-5 giorni Idoneità per principianti 38/100
codeceptjs/CodeceptJS#5618 · 1 commento ·
Tutte le issue di codeceptjs/CodeceptJS
Issue simili
-
bug customer-eng Durable Agents Inngest status: needs triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
-
optimization optimization:agents-md-curator
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
githubnext/gh-aw-cao#13475 ·
-
[BUG]: "Clear All" in Settings doesn't clear the saved analysis, old data comes back after reload Apertabug
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
AOSSIE-Org/OrgExplorer#253 · 1 commento ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
oxc-project/oxc#26944 ·
-
ai-observability bug team/ai-observability
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100