Protractor E2E测试本地可运行但Bamboo平台启动失败如何解决
问题排查与解决方案
你遇到的Chrome启动失败问题是CI环境运行无头Chrome的常见问题,可按以下步骤逐一排查修复:
1. 版本匹配校验
报错中ChromeDriver版本为95.0.4638.54,首先登录Bamboo运行Agent节点,执行chromium --version确认本地安装的Chromium大版本是否和ChromeDriver完全一致,大版本不匹配是启动失败的高发原因。
2. 修正Protractor配置参数
你当前的protractor.conf.js中存在参数拼写错误,且缺少无桌面环境、Snap版Chromium的适配参数,将chromeOptions.args修改为以下内容:
args: [ "--headless", "--no-sandbox", "--disable-setuid-sandbox", "--disable-dev-shm-usage", "--disable-gpu", "--disable-extensions", "--disable-infobars", // 原配置缺少开头的--,导致参数不生效 "--disable-web-security", "--allow-running-insecure-content", "--no-zygote", // 适配无桌面环境 "--single-process", // 解决Snap版Chromium沙箱权限问题 "--window-size=1920,1080", "--remote-debugging-port=9222" ]
如果仍启动失败,可在chromeOptions中显式指定Chromium二进制路径(先在Agent上确认实际路径后替换):
chromeOptions: { binary: '/usr/bin/chromium-browser', args: [/* 上述参数 */] }
3. 固定webdriver-manager版本
不要使用默认拉取最新版本的逻辑,调整Bamboo作业中webdriver-manager更新命令,指定和Agent上Chromium匹配的版本,例如:
webdriver-manager update --versions.chrome=95.0.4638.54
4. 调整连接模式
如果上述修改后仍报错,将directConnect: true改为directConnect: false,同时显式指定ChromeDriver的路径(webdriver-manager更新后可获取对应路径):
exports.config = { // 其他配置不变 directConnect: false, chromeDriver: '/your/agent/path/to/chromedriver_95.0.4638.54' }
验证方式
所有修改完成后,先直接登录Bamboo运行Agent节点,手动执行npm run e2e验证测试可以正常启动,再提交配置在Bamboo平台运行。
内容的提问来源于stack exchange,提问作者Anastasia
相关产品推荐
相关产品推荐

