量角器/茉莉花在Jenkins上测试超时

时间:2019-03-27 16:59:46

标签: shell jenkins cmd jasmine protractor

我的团队和我有一套122个量角器测试。茉莉花测试很简单

  1. 登录
  2. 导航到页面
  3. 填写表格
  4. 确定结果

使用量角器5.4,茉莉花3.3和类型脚本3.1编写测试,并使用nodeJs 10.5.3,npm 6.9.0执行测试。 我们的测试针对远程开发服务器。

在测试通过的本地和远程计算机上运行以下命令。

  • 打开cmd
  • git clone ...
  • cd repo-name
  • npm install
  • npm run e2e:dev

测试使用无头铬浏览器进行。这是e2e配置

exports.config = {
  specs: [
    './src/**/*.e2e-spec.ts'
  ],
  capabilities: {
    'browserName': 'chrome',
    chromeOptions: {
      args: [
        'headless',
        'disable-gpu',
        'window-size=1024,1536',
        'disable-browser-side-navigation',
        'disable-web-security'
      ],
      useAutomationExtension: false,
      prefs: {
        'download': {
          'prompt_for_download': false,
          'directory_upgrade': true,
          'default_directory': path.resolve("./target/downloads")
          }
        }
      }      
  },
  directConnect: true,
  baseUrl: '[internal server url]',
  framework: 'jasmine',
  jasmineNodeOpts: {
    showColors: true
  },
  onPrepare() {
    rmDir(path.resolve("./target/downloads"));
    require('ts-node').register({
      project: require('path').join(__dirname, './tsconfig.e2e.json')
    });
    var environment = jasmine.getEnv();
    environment.addReporter(new SpecReporter({ spec: { displayStacktrace: true } }));
    environment.addReporter(new jasmineReporters.JUnitXmlReporter({
        savePath: 'target/junitreporter',
        consolidateAll: true,
        captureStdout: true
      })
    );
  }
};

Jenkins使用具有本地管理员特权的域帐户作为Windows服务运行。在3月12日之前,该工作已成功在每周晚上10点成功运行。从3月12日开始,这项工作失败了,因为30-40次测试引发了茉莉花超时。 31m Error: Timeout - Async callback was not invoked within timeout specified by jasmine.DEFAULT_TIMEOUT_INTERVAL 我们尝试增加默认超时时间,但这不能解决问题。

我们正在Java 1.8上运行Jenkins 2.169。我已经排除了RAM,AV和项目配置文件。看起来Jenkins 2.169 Windows批处理命令确实是罪魁祸首,我不确定如何解决此问题。

我们还尝试使用Jenkins的git bash的shell运行命令,并得到相同的结果。

是否还有其他人遇到类似问题,您是否能够解决?

0 个答案:

没有答案