无头量角器不分片测试
Headless protractor not sharding tests
我正在尝试 运行 我的测试无头并将我的测试套件分片到 运行 它们并行。在我的本地机器上它们 运行 并行,但在这个无头设置中它们 运行 一个接一个。我正在为 Web 驱动程序和量角器使用 Docker 个图像。
我正在使用 webnicer-protractor Docker 图片:https://hub.docker.com/r/webnicer/protractor-headless/
并且正在使用 elgalu/selenium 作为网络驱动程序。
我的 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']
}
Protractor 现在可以在真实 Google Chrome 浏览器上进行无头测试,因为 Chrome >= 57,Chrome 驱动程序 >= 2.29 以及一些基本的配置:
capabilities: {
browserName: 'chrome',
chromeOptions: {
args: ['headless', 'window-size=1920,1080']
}
}
另一个很酷的事情是 window 大小不受当前显示的限制。它是真正的无头,这意味着它可以根据测试的需要而变大。
某些网络驱动程序功能在那里无法使用。例如:
browser.manage().window().setPosition();
browser.manage().window().setSize();
browser.manage().window().maximize();
您必须识别并删除不受支持的功能,除此之外 Google Chrome headless 对我来说非常有用。
请务必注意,例如 sendKeys
可能会触发此错误:
Failed: unknown error: an X display is required for keycode conversions, consider using Xvfb
如果没有真实显示或者没有Xvfb until this was fixed on the Chrome side. The X display required
error was fixed with ChromeDriver 2.31.
我正在尝试 运行 我的测试无头并将我的测试套件分片到 运行 它们并行。在我的本地机器上它们 运行 并行,但在这个无头设置中它们 运行 一个接一个。我正在为 Web 驱动程序和量角器使用 Docker 个图像。
我正在使用 webnicer-protractor Docker 图片:https://hub.docker.com/r/webnicer/protractor-headless/ 并且正在使用 elgalu/selenium 作为网络驱动程序。
我的 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']
}
Protractor 现在可以在真实 Google Chrome 浏览器上进行无头测试,因为 Chrome >= 57,Chrome 驱动程序 >= 2.29 以及一些基本的配置:
capabilities: {
browserName: 'chrome',
chromeOptions: {
args: ['headless', 'window-size=1920,1080']
}
}
另一个很酷的事情是 window 大小不受当前显示的限制。它是真正的无头,这意味着它可以根据测试的需要而变大。
某些网络驱动程序功能在那里无法使用。例如:
browser.manage().window().setPosition();
browser.manage().window().setSize();
browser.manage().window().maximize();
您必须识别并删除不受支持的功能,除此之外 Google Chrome headless 对我来说非常有用。
请务必注意,例如 sendKeys
可能会触发此错误:
Failed: unknown error: an X display is required for keycode conversions, consider using Xvfb
如果没有真实显示或者没有Xvfb until this was fixed on the Chrome side. The X display required
error was fixed with ChromeDriver 2.31.