无头量angular器不分片testing

我试图运行我的testing无头和碎片两个我的testing套件并行运行它们。 在我的本地机器上,它们并行运行,但在这个无头的设置中,它们依次运行。 我正在使用networking驱动程序和量angular器的docker图像。

我正在使用webnicer-protractordocker图像: https ://hub.docker.com/r/webnicer/protractor-headless/和使用elgalu / selenium的networking驱动程序。

我运行的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'] } 

在Chrome浏览器> = 57,Chromedriver> = 2.29的基础configuration下,现在可以在真正的Google Chrome浏览器上进行量angular器无头testing:

 capabilities: { browserName: 'chrome', chromeOptions: { args: ['headless', 'window-size=1920,1080'] } } 

另一件很酷的事情是窗户大小不限于当前的显示,真正的无头的意义在于可以像testing所需的那样大。

一些webdriverfunction在这里不起作用,例如:

 browser.manage().window().setPosition(); browser.manage().window().setSize(); browser.manage().window().maximize(); 

您将不得不确定并删除不支持的function,除了无头的chrome对我来说非常棒。

请注意,例如sendKeys可能会触发此错误:

 Failed: unknown error: an X display is required for keycode conversions, consider using Xvfb 

如果没有真正的显示或没有Xvfb, 直到这一点固定在Chrome端。

更新 ChromeDriver 2.31修复了X display required错误