无头量角器不分片测试

Jar*_*urg 2 headless docker protractor

我正在尝试无头运行我的测试,并将我的两个测试套件分片以并行运行它们。在我的本地计算机上,它们并行运行,但在这种无头设置中,它们一个接一个地运行。我正在使用 Docker 映像作为 Web 驱动程序和量角器。

我正在使用 webnicer-protractor Docker 映像:https://hub.docker.com/r/webnicer/protractor-headless/ 并使用 elgalu/selenium 作为 Web 驱动程序。

我运行的conf.js文件如下所示:

exports.config = {
  //Headless
  //seleniumAddress: 'http://localhost:4444/wd/hub',
  seleniumAddress: 'http://localhost:24444/wd/hub',
  capabilities: {
    browserName: 'chrome',
    shardTestFiles: true,
    maxInstances: 2
  },
  specs: ['Suites/AccountSettingsSuite.js', 'Suites/CloneDashboardSuite.js']
}
Run Code Online (Sandbox Code Playgroud)

Leo*_*cci 5

由于 Chrome >= 57、Chromedriver >= 2.29 以及一些基本配置,现在可以在真正的 Google Chrome 浏览器上进行Protractor无头测试:

capabilities: {
    browserName: 'chrome',
    chromeOptions: {
        args: ['headless', 'window-size=1920,1080']
    }
}
Run Code Online (Sandbox Code Playgroud)

另一个很酷的事情是窗口大小不限于当前显示。它确实是无头的,这意味着它可以根据测试需要而变得尽可能大。

某些网络驱动程序功能在那里无法使用。例如:

browser.manage().window().setPosition();
browser.manage().window().setSize();
browser.manage().window().maximize();
Run Code Online (Sandbox Code Playgroud)

您必须识别并删除不支持的功能,除了 Google Chrome 无头功能对我来说效果很好之外。

值得注意的是,例如sendKeys可能会触发此错误:

失败:未知错误:键码转换需要 X 显示,请考虑使用 Xvfb

如果没有实际显示或没有 Xvfb,直到在 Chrome 端修复此问题。ChromeDriver 2.31X display required修复了该错误。