【问题标题】:How to run multi browser tests sequentially in Protractor?如何在量角器中按顺序运行多浏览器测试?
【发布时间】:2019-12-18 11:56:04
【问题描述】:

例如,我有 5 个 TC,需要在 Firefox 和 Chrome 上运行所有 5 个测试用例。因此,一旦 Chrome 完成了 5 个 TC 的执行,我需要 Firefox 浏览器启动并按顺序执行相同的工作。

当我使用 multiCapabilities 时,它会同时启动 Firefox 和 Chrome。

【问题讨论】:

  • 您能否就您为什么要按顺序运行提供更多见解?它可以以相当繁琐的方式完成,这将涉及 browser.forkNewDriverInstance()。看看这个方法有没有帮助。

标签: javascript protractor


【解决方案1】:

您可以在量角器配置conf.js中使用maxSessionsvar

  // Maximum number of total browser sessions to run. Tests are queued in
  // sequence if number of browser sessions is limited by this parameter.
  // Use a number less than 1 to denote unlimited. Default is unlimited.
  maxSessions: -1

更多信息https://github.com/angular/protractor/blob/master/docs/referenceConf.js#L198

示例conf.js(firefox、safari、chrome、chrome 设备模拟器):

multiCapabilities: [
    {
        browserName: 'firefox'
    },
     {
     browserName: 'safari'
     },
    {
        browserName: 'chrome'
    },
    {
        browserName: 'chrome',
        // List of devices https://cs.chromium.org/chromium/src/chrome/test/chromedriver/chrome/mobile_device_list.cc
        'deviceName': 'Google Nexus 5'
    },
    {
        browserName: 'chrome',
        'deviceName': 'Apple iPhone 6'
    },
    {
        browserName: 'chrome',
        'deviceName': 'Apple iPad'
    },
    {
        browserName: 'chrome',
        'deviceName': 'Samsung Galaxy S4'
    }
],
maxSessions: 1

更多示例和真机测试https://github.com/aluzardo/protractor-cucumber-tests

【讨论】:

  • 谢谢阿道夫,它对我帮助很大。我能够达到我的要求,作为我在下面的答案。
【解决方案2】:

这已经在量角器版本 5.4.2 中经过测试并且工作正常,并且根据 Adolfo 的 回答,我添加了 maxSessions: 1,因此它以顺序模式运行。换句话说,首先执行 firefox 规范,然后执行 chrome 。

exports.config = {
  framework: 'jasmine',
  directConnect: false,


  multiCapabilities: [{
      browserName: 'firefox',
      'moz:firefoxOptions': {
            args: ['--verbose'],
            binary: 'C:/Program Files/Mozilla Firefox/firefox.exe'
       //Need to start cmd via admin mode to avoid permission error
        },
      specs: ['src/com/sam/scriptjs/draganddrop.spec.js']
    }, 
    {
        browserName : 'chrome',
        chromeOptions: {
            args: [ "--start-maximized" ]
                     },
        specs: ['src/com/sam/scriptjs/iframes.spec.js']

    }],
    maxSessions: 1,//To run in sequential mode so first Firefox then chrome 
    //without max session it will open two windows at the same time for both browsers
     seleniumAddress: 'http://localhost:4444/wd/hub'

}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-03-26
    • 1970-01-01
    • 2019-07-19
    • 2015-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-03
    相关资源
    最近更新 更多