首页 文章

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

提问于
浏览
0

我目前正在尝试使用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

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

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

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

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

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


    UPDATE:
    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以获取更多详细信息 .

相关问题