GitLab CI/CD中WebdriverIO测试session崩溃报错的排查与解决
GitLab CI中WebdriverIO+Cucumber测试页面崩溃问题解决
问题概述
在GitLab CI环境运行基于WebdriverIO(JavaScript)+Cucumber的自动化测试时,出现unknown error: session deleted because of page crash错误,表现为页面标签崩溃、无法确定加载状态;本地运行测试无异常,CI环境使用Node.js 12.22版本,采用同步模式构建。
问题原因分析
- Chrome驱动与浏览器版本不兼容:项目依赖的
chromedriver版本为79.0.3,但CI中selenium/standalone-chrome提供的Chrome版本为111.0.5563.146,驱动与浏览器版本差距过大,导致通信故障引发页面崩溃。 - 无头Chrome资源不足:GitLab CI容器默认内存配额有限,无头Chrome默认配置的资源占用超出容器限制,导致页面进程被系统强制终止。
- WebdriverIO服务配置冲突:配置中同时启用了
selenium-standalone本地服务和CI提供的selenium/standalone-chrome远程服务,双重驱动管理引发冲突。 - 同步模式与旧Node版本限制:Node.js 12对现代Chrome的兼容性有限,同步模式依赖的
fibers库在高版本浏览器环境下稳定性不足。
修复方案
1. 对齐Chrome驱动与浏览器版本
更新package.json中的chromedriver版本,匹配CI环境的Chrome 111版本:
"dependencies": { // ... 其他依赖项 "chromedriver": "^111.0.0" }
或者直接移除chromedriver依赖,让CI的selenium/standalone-chrome服务自动管理匹配版本的驱动。
2. 优化无头Chrome启动参数
在WebdriverIO配置中添加资源限制和性能优化参数,适配CI容器环境:
capabilities: [ { browserName: 'chrome', "goog:chromeOptions": { "args": [ '--headless', '--disable-gpu', '--timeout=300000', '--no-sandbox', // CI环境必备,禁用沙箱模式 '--disable-dev-shm-usage', // 避免/dev/shm内存不足问题 '--window-size=1920,1080', // 固定窗口大小,避免渲染异常 '--disable-extensions', '--single-process', // 单进程模式减少资源占用 '--homedir=/tmp', '--disk-cache-dir=/tmp/cache-dir' ] } }, ],
3. 解决服务配置冲突
移除WebdriverIO配置中的selenium-standalone服务,仅使用CI提供的远程Selenium服务:
// 删除以下配置项 services: [ [ 'selenium-standalone',{ drivers: { firefox: '0.29.1', chrome: 'latest', chromiumedge: 'latest' } } ], ],
4. 调整CI环境资源配置
在GitLab CI配置中增加内存资源请求(需GitLab Runner支持),并优化依赖安装:
e2e:chrome: &e2e stage: test-automation image: timbru31/java-node:11-jre-erbium services: - selenium/standalone-chrome resources: requests: memory: "2Gi" # 提升内存配额,避免资源耗尽 cpu: "1" script: - npm install --force # 强制安装,解决版本依赖冲突 - npm run ci-stg
5. 迁移到异步模式(可选)
WebdriverIO v5的同步模式稳定性较差,建议逐步迁移到异步模式:
- 移除
@wdio/sync依赖 - 将所有同步测试代码改为异步(用
await替代同步调用) - 在配置中设置
sync: false
验证步骤
- 推送修改后的配置到GitLab仓库
- 触发CI流水线,观察测试运行状态
- 若问题仍存在,将WebdriverIO日志级别改为
debug,获取更详细的错误信息排查
内容的提问来源于stack exchange,提问作者Liliia Lobko
相关产品推荐
相关产品推荐

