0

我为服务级别测试实现了测试用例,我可以使用 {parallel = tests} 在套件级别并行执行它们,如下所示

<suite name="Suite_Name" parallel="tests" thread-count="10">

如果我有一个包含以下子套件的父套件,并且如果我想创建一个 Jenkins 作业来执行这个父套件,有没有办法并行执行这些子套件[内部每个子套件都将执行它的测试案例平行]?

<suite>
   <suite-files>
    <suite-file path="./testSuite_1.xml"/>
    <suite-file path="./testSuite_2.xml"/>
    <suite-file path="./testSuite_3.xml"/>
    <suite-file path="./testSuite_4.xml"/>
</suite-files>

我知道如果我们有任何基于 Web 的测试用例,可以使用 selenium 网格,但我拥有的案例不是基于 Web 的。它们是 API/服务级别的测试用例,由使用 Java、TestNG 和 Jax-rs 库的定制框架实现。

4

1 回答 1

0

这在很大程度上取决于您如何运行测试。假设您正在讨论在 CI 环境中运行测试。我将使用GitLab 管道来说明我的答案。

如果您能够从命令行运行单个套件。类似的东西runTests suite1。然后,在您的管道中为每个测试套件配置一个作业。通过将所有作业分配到同一阶段,它们将并行运行。

根据示例,您.gitlab-ci.yml将看起来像这样:

stages:
  - build
  - test

job 1:
  stage: build
  script: runBuild

job 2:
  stage: test
  script: runTests suite1

job 3:
  stage: test
  script: runTests suite2

job 4:
  stage: test
  script: runTests suite3

job 5:
  stage: test
  script: runTests suite4

注意:如果您在问题中添加更多细节,请随时给我留言,我会相应地更新我的答案。CI 系统、构建工具等会有所帮助。

詹金斯细节

感谢您对环境的澄清。我没有亲自和詹金斯做过这件事。但是,Cloudbees 有一篇博客文章讨论了并行运行作业。请查看该帖子上的拆分测试部分,它可能正是您正在寻找的。

于 2019-05-09T16:25:15.110 回答