与Webdriver.io和Browserstack Automate并行运行Cucumber.js场景

时间:2016-02-11 18:08:44

标签: selenium cucumber cucumberjs webdriver-io browserstack

我正在尝试使用Webdriver.io的测试运行器和Browserstack Automate,针对多个浏览器并行运行Cucumber.js场景。我已经在测试运行器的配置中指定了我们想要测试的每个浏览器和操作系统的功能。设置了一个Webdriver.io配置文件来执行针对Browserstack Automate的测试运行。

我想执行一次测试运行并让每个场景在一个单独的Browserstack VM中同时运行 - 例如,在Chrome,Firefox,IE和Safari上运行第一个测试,同时第二个测试是针对相同的平台运行:

Parallel execution of scenarios per VM

不幸的是,似乎发生了以下情况:

Serial execution of scenarios per VM

  • Browserstack针对每个指定的功能在VM中串行运行所有功能和方案,而不是为每个VM运行一个测试
  • 将单个方案放入单独的要素文件中没有 效果 - 功能(以及场景)仍然在每个VM上串行执行

是否可以在单独的Browserstack VM中同时运行每个场景?

1 个答案:

答案 0 :(得分:0)

这里的问题不在于BrowserStack,而在于您并行启动测试的方式。 BrowserStack将根据接收请求的方式为测试分配远程计算机。

由于您使用的是WebdriverIO,因此您可以使用“multiremote”功能并行运行测试,如下所示:

var browser = webdriverio.multiremote({
    myChromeBrowser: {
        desiredCapabilities: {
            browserName: 'chrome'
        }
    },
    myFirefoxBrowser: {
        desiredCapabilities: {
            browserName: 'firefox'
        }
    }
});

要使用BrowserStack的'multiremote'功能,您可以查看此sample script

此外,建议您发送电子邮件至support@browserstack.com以获取进一步的帮助。

<强>更新
WebDriverIO v4.0现在固有地支持并行测试。您可以通过指定以下给定的多组功能在不同的浏览器和操作系统组合上并行运行:

user: process.env.BROWSERSTACK_USERNAME,
key: process.env.BROWSERSTACK_ACCESS_KEY,

maxInstances: 10,

capabilities: [{
     os: 'OS X',
     os_version: 'Yosemite',
     browser: 'firefox',
     browser_version: '44',
     name: 'Parallel Tests',
     build: 'Sample WebDriverIO tests',
 },    
 {
     os: 'Windows',
     os_version: '10',
     browser: 'Chrome',
     browser_version: '44',
     name: 'Parallel Tests',
     build: 'Sample WebDriverIO tests'
 }]

您可以参考示例项目here以获取更多详细信息。