You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AngularJS文件上传测试本地正常,GitLab CI中Chromedriver会话崩溃报错

解决GitLab CI上Protractor文件上传测试的页面崩溃问题

看起来你遇到的session deleted because of page crash错误在CI容器环境(比如GitLab Runner)里很常见,主要和Chrome无头模式的配置、资源限制或版本兼容有关。结合你的测试场景,我整理了几个针对性的解决方案:

1. 确保Chrome与Chromedriver版本严格匹配

虽然本地环境版本适配,但GitLab CI上的Chrome版本可能和你本地不一致。Chromedriver和Chrome的版本必须严格对应:

  • Chrome v66.0.x 对应的Chromedriver版本是2.38或2.39
    你可以在CI脚本里添加步骤,强制安装指定版本的Chrome,或者先检查CI环境的Chrome版本是否符合要求。

2. 优化Chrome无头模式的启动参数

CI容器通常是无桌面的Linux环境,需要给Chrome添加必要参数来规避权限和内存问题。在你的Protractor配置文件(protractor.conf.js)中修改capabilities配置:

exports.config = {
  // 其他配置项...
  capabilities: {
    browserName: 'chrome',
    chromeOptions: {
      args: [
        '--headless', // CI环境必须启用无头模式
        '--disable-gpu',
        '--no-sandbox', // 解决Linux环境下的权限限制问题
        '--disable-dev-shm-usage', // 避免容器内/dev/shm内存不足导致崩溃
        '--window-size=1920,1080', // 固定窗口大小,避免渲染异常
        '--disable-extensions',
        '--disable-infobars'
      ]
    }
  },
  // 其他配置项...
};

其中--no-sandbox和--disable-dev-shm-usage是解决这类崩溃问题的核心参数。

3. 替换固定等待为显式等待

browser.sleep(500)是不稳定的固定等待,在CI环境中可能因为资源不足导致等待时间不够,或者无端浪费时间。建议替换为基于条件的显式等待:

const EC = protractor.ExpectedConditions;
const fileElem = element(by.css('input[type="file"]'));
// 替换为你页面上实际的上传成功标识元素
const uploadSuccessIndicator = element(by.css('.upload-success-message'));

fileElem.sendKeys(absoluteFilePath);
// 等待上传成功元素可见,超时时间设为5秒
browser.wait(EC.visibilityOf(uploadSuccessIndicator), 5000, '文件上传超时未完成');

这种方式既可靠,又能适配不同环境的执行速度差异。

4. 检查CI环境的资源限制

GitLab Runner的容器默认内存可能不足,Chrome无头模式运行时需要足够内存才能避免页面崩溃。你可以:

  • 在GitLab CI配置文件(.gitlab-ci.yml)中给测试任务分配更多内存:
test:
  script:
    - npm test
  resources:
    limits:
      memory: 2G # 根据实际需求调整
  • 避免在CI环境中同时运行其他占用大量资源的任务。

5. 升级依赖版本(可选)

你的Protractor(5.3.1)和Chromedriver(2.38.2)版本相对较旧,可能存在一些CI环境下的已知bug。可以尝试升级到匹配的稳定版本:

  • 升级Protractor到5.4.x系列(完全兼容AngularJS)
  • 确保Chromedriver版本与CI环境的Chrome版本严格对应

按照以上步骤调整后,应该能解决GitLab CI上的页面崩溃问题。

内容的提问来源于stack exchange,提问作者Vadym Shashkov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 10:19:28