BDD Tests are failing due to Chrome session not being able to create on CI pipeline
維護者通常 1 天內回覆
還沒有人認領這個 Issue。
評估
- 難度
- 4/5
- 預估耗時
- 3-5 天
- 新手友好度
- 25/100
- Issue 類型
- 缺陷
- 描述清晰度
- 基本清楚
- 活躍度
- 停滯
- 技術堆疊
- docker, github-actions, javascript, node.js
- 領域
- ci-cd, testing-qa
研究方向
從 workflow.yml 和 test.codecept.conf.js 中的 WebDriver 設定開始;執行所示的 npx codeceptjs 指令,並檢查 hub/chrome 服務啟動與工作階段建立日誌。完成的標準是 CI @store 執行建立一個 Chrome 工作階段,並在沒有 WebDriver 逾時的情況下完成 checkout 驗證。
由索引模型根據 Issue 內容生成。
描述
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..
- 主要語言
- JavaScript
- 星號
- 4.2k
- 分支
- 756
- 平均合併
- 1 天 8 小時
- 30 天內合併 PR
- 18
環境準備
- 提供 Dockerfile 或 Docker Compose 檔案
- 有 Pull Request 範本
- 閱讀貢獻指南
從這裡開始
- 先讀完整個 Issue,再讀專案的貢獻指南。
- 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
- Fork 儲存庫,在一個分支上完成修改。
- 送出 Pull Request,並在描述裡引用這個 Issue 編號。
codeceptjs/CodeceptJS 的其他 Issue
-
難度 2/5 1-3 小時 新手友好度 68/100
codeceptjs/CodeceptJS#5731 ·
維護者通常 1 天內回覆
-
`I.waitForFile` (FileSystem helper) fails if directory does not exist (yet)可能已有人在做 @danielrentz 於 250 天前認領。 未關閉stale
難度 2/5 1-3 小時 新手友好度 72/100
codeceptjs/CodeceptJS#5420 · 1 則留言 ·
維護者通常 1 天內回覆
-
stale
難度 2/5 1-3 小時 新手友好度 76/100
codeceptjs/CodeceptJS#5358 · 1 則留言 ·
維護者通常 1 天內回覆
-
stale
難度 2/5 1-3 小時 新手友好度 78/100
codeceptjs/CodeceptJS#4958 · 10 則留言 · 2 個 reaction ·
維護者通常 1 天內回覆
-
stale
難度 1/5 1 小時以內 新手友好度 72/100
codeceptjs/CodeceptJS#4778 · 3 則留言 ·
維護者通常 1 天內回覆
查看 codeceptjs/CodeceptJS 的全部 Issue
相似的 Issue
-
area:docs bug triage:confirmed
難度 2/5 1-3 小時 新手友好度 74/100
維護者通常 1 天內回覆
-
[Feature]:未關閉enhancement
難度 2/5 1-3 小時 新手友好度 65/100
-
難度 2/5 1-3 小時 新手友好度 73/100
Uuriko/project-room#1554 ·
維護者通常 1 天內回覆
-
難度 2/5 1-3 小時 新手友好度 82/100
維護者通常 4 天內回覆
-
automated issue report
難度 2/5 1-3 小時 新手友好度 62/100
lirantal/discoprint#36 ·
維護者通常 1 天內回覆