我最近设置了一个Selenium Grid(1个服务器用于集线器,10个其他服务器,每个服务器有1个节点),运行我的Protractor自动化测试时没有问题。但是,我想在multiCapabilities
(在我的protractor.conf.js中)中定义的所有节点上对~400个测试进行分片,这样我就可以大大减少执行时间。
量角器supported this,但它已被弃用(不知道为什么......?)。我已经尝试在shardTestFiles: true
对象中设置multiCapabilities
,但这只是在每个节点内的所有浏览器实例中对测试进行分片(每个节点都运行所有测试)。我也使用了maxSessions
,maxInstances
和count
配置。我甚至尝试删除multiCapabilities
并将完整配置放入capabilities
- 没有运气。
是否有非hacky 方式让这个工作?我已经搜索了npm,我也找不到任何节点模块或gulp插件。
答案 0 :(得分:0)
您是否尝试过在conf.js中为多功能提供类似的内容
multiCapabilities:[{ 'browserName':'chrome', shardTestFiles:是的, maxInstances:2 规格:['specs1','specs2'], }, { 'browserName':'firefox', shardTestFiles:是的, maxInstances:2 规格:['specs3','specs4'], }, }]
这将仅在chrome上运行spec1和2,在firefox上运行spec 3和4,这将减少总执行时间50%。 您可以在多功能功能内传递更多功能,并将规格进一步分配给这些功能,以进一步减少总执行时间。