使用CodeceptJS / WebdriverIO并行化浏览器的执行

时间:2017-04-06 09:41:10

标签: javascript webdriver-io saucelabs codeceptjs

我在内部使用WebDriverIO的javascript中使用Codeceptjs进行自动化测试。我已经实现了使用上面提到的框架在Sauce上运行。

我已经完成了通过使用所需的功能在酱酱实验室的不同浏览器中运行自动化测试用例,但一次只能使用一个浏览器

请求帮助

  1. 并行化所有测试文件在一个浏览器上运行 实验室。
  2. 在酱料实验室的多个浏览器上并行化测试运行。
  3. 拥有上述两种组合会很棒。

    我应该提供什么配置才能在WebDriverIO / CodeceptJS上实现上述两个要求。

    这是我的配置,将传递给酱料实验室。

    --- --- codecept.conf.js

    WebDriverIO: {
      url: "http://localhost:3000",
      browser: chrome,
      waitforTimeout: 60000,
      restart: false,
      logLevel: "silent",
      cssSelectorsEnabled: "true",
      timeouts: {
        script: 60000,
        "page load": 60000,
        implicit : 0
      },
      "host": "ondemand.saucelabs.com",
      "port":80,
      "user":"<SAUCE_USER_NAME>",
      "key": "<SAUCE_ACCESS_KEY>”,
      desiredCapabilities :{
        "chrome": {
          "browserName": "chrome",
          "name": "TEST_CHROME",
          "platform": "ANY",
          "version": "55.0"
        }
      }
    }
    

    这些是我正在使用的所需功能列表,并根据所选浏览器名称选择一项功能:

    {
      "internet explorer": {
        "browserName": "internet explorer",
        "name": "TEST_IE",
        "platform": "Windows 7",
        "ignoreZoomSetting": true,
        "nativeEvents": false,
        "ignoreProtectedModeSettings": true,
        "version": "11"
      },
      "chrome": {
        "browserName": "chrome",
        "name": "TEST_CHROME",
        "platform": "ANY",
        "version": "55.0"
      },
      "firefox": {
        "browserName": "firefox",
        "name": "TEST_FIREFOX",
        "platform": "ANY",
        "version": "51.0"
      },
      "safari": {
        "browserName": "safari",
        "name": "TEST_SAFARI",
        "platform": "OS X 10.11",
        "version": "10.0"
      },
      "opera": {
        "browserName": "opera",
        "name": "TEST_OPERA",
        "platform": "Windows 7",
        "version": "ANY"
      },
      "MicrosoftEdge": {
        "browserName": "MicrosoftEdge",
        "name": "TEST_IEEdge",
        "platform": "Windows 10",
        "version": "13"
      }
    }
    

2 个答案:

答案 0 :(得分:1)

我从未使用过CodeceptJS。但是,由于它使用Wdio,因此可以使用 maxInstances 属性来配置并行运行的浏览器数量。

查看Wdio文档:http://webdriver.io/guide/testrunner/configurationfile.html

答案 1 :(得分:0)

  

手册:parallel execution

添加到您的codecept.conf.js:

"multiple": {
  "internet explorer": {
    "browsers": ["internet explorer"]
  },
  "chrome": {
    "browsers": ["chrome"]
  },
  "firefox": {
    "browsers": ["firefox"]
  },
  "safari": {
    "browsers": ["safari"]
  },
  "opera": {
    "browsers": ["opera"]
  },
  "MicrosoftEdge": {
    "browsers": ["MicrosoftEdge"]
  },
  "parallel": {
    // Splits tests into chunks
    // for example: 2 chunks x 6 browsers = 12 threads
    "chunks": 2,
    // run all tests in each browser:
    "browsers": ["internet explorer", "chrome", "firefox", "safari", "opera", "MicrosoftEdge"]
  }
}

多次调用选择性浏览器:

codeceptjs run-multiple chrome opera "internet explorer" firefox // create threads (four in all) for each browser: chrome, opera, internet explorer and firefox.

对每个浏览器进行多次调用:

codeceptjs run-multiple parallel