使用量角器并行/并发测试执行

win*_*win 1 automated-tests protractor

我有 2 个测试用户(将添加更多)。一些规范文件使用一种,另一些使用另一种。如果两个测试用例使用相同的测试用户,则它们不能一起运行。我想在硒网格中执行我的所有规范。我最终决定使用一个规范用户与一个 chrome 实例和另一个与另一个 chrome 实例对规范文件进行分组。(目前我将只使用一个 chrome 版本)现在的问题是两个 chrome 浏览器是相同的版本。如何将 2 组测试用例分开以并行运行。例如,测试用户 1 案例将在 Chrome 实例 1 上运行,而另一组测试案例将在 Chrome 实例 2 上运行。我添加了一个任意的 browser_version 来分隔多功能中的 2 组。我不认为它有效。有没有一个优雅的解决方案。为了调试,我试图通过测试中的以下几行获取特定测试使用的浏览器版本。它可能是不可能的。

(browser.multiCapabilities["browser_version"]).then(function(v){
  console.log("check:" + v);
})
Run Code Online (Sandbox Code Playgroud)

;

但它给出了错误。无法读取未定义的属性“browser_version”。

以下是量角器配置文件的多功能性。我不使用高于此级别的“规格”属性。

maxSessions: 2,
multiCapabilities: [
{
  'browserName': 'chrome',
  'browser_version': '11.0',
  shardTestFiles: false,
  maxInstances: 1,
  maxSessions: 1,
  count: 1,
  specs: [ 'test/e2e/VE1-Spec.js', 'test/e2e/VE2-Spec.js' ]
}, {
  shardTestFiles: false,
  'browserName': 'chrome',
  'browser_version': '9.0',
  maxInstances: 1,
  maxSessions: 1,
  count: 1,

  specs: ['test/e2e/DG1-Spec.js', 'test/e2e/DG2-Spec.js']
}],
Run Code Online (Sandbox Code Playgroud)

Sud*_*raj 5

试试下面的 multiCapabilities 配置。这对我来说很好用。

multiCapabilities: [
    {
        shardTestFiles: true,
        maxInstances: 1,
        sequential: true,
        browserName: 'chrome',
        specs: ['specs/spec1.js','specs/spec2.js','specs/spec3.js']
    },
    {
        shardTestFiles: true,
        maxInstances: 1,
        sequential: true,
        browserName: 'chrome',
        specs: ['specs/spec4.js',
            'specs/spec5.js',
            'specs/spec6.js',
        ]
    }
Run Code Online (Sandbox Code Playgroud)

上述配置将启动两个 chrome 实例并在 chrome 实例 1 上执行 spec1、spec2 和 spec3。其余 3 个规范将在 chrome 实例 2 上执行。