首页 > 解决方案 > 如何多次运行相同的规范?

问题描述

我正在使用 jasmine 和 Appium 进行 ios 测试。我需要在应用程序中创建数千个帖子。我正在尝试为此使用 Saucelabs 并行测试。当我在 conf 文件中复制粘贴相同的规范文件 x 次时,它在 saucelabs 上运行 x 次 2 次。所以如果我这样写:

config.specs = [
    './test/specs/social/addPost.spec.js',
    './test/specs/social/addPost.spec.js',
    './test/specs/social/addPost.spec.js',
    './test/specs/social/addPost.spec.js',
    './test/specs/social/addPost.spec.js',
];

它运行测试五次,从并行运行其中两个开始,然后继续下一个,依此类推。我需要为应用程序创建 1200 个帖子,因此我必须并行运行此文件 1200 次。我怎样才能运行这个规范文件 1200 次?

标签: jasmineappiumwebdriver-iosaucelabs

解决方案


避免多次复制粘贴文件名的一种方法是创建一个简单的函数,该函数返回一个包含您要传递的文件名的数组。下面的示例函数。

function getArrayOfSpecs(specFilePath, count) {
  let finalArray = [];
  for (i = 0; i < count; i++) {
    finalArray.push(specFilePath);
  }
  return finalArray;
}

然后最后在你的配置文件中调用这个函数,如下所示。

config.specs = getArrayOfSpecs('./test/specs/social/addPost.spec.js', 1200);

在 saucelab 中运行这么多并行测试并非易事,完全取决于您的许可证。根据此链接,您无法并行运行那么多测试。您可以与他们的销售和支持团队交谈,以了解是否有办法获得定制许可证,前提是您愿意支付大笔资金。


推荐阅读