我已经为服务水平测试实现了测试用例,并且可以通过使用{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库实现。

最佳答案

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

如果能够从命令行运行单个套件。类似于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的blog post涉及并行运行作业。请查看该帖子上的“拆分测试”部分,它可能正是您所需要的。

08-04 11:27