【问题标题】:How can I execute testNG test cases in parallel on multiple machines?如何在多台机器上并行执行 testNG 测试用例?
【发布时间】:2019-05-10 22:34:37
【问题描述】:

我为服务级别测试实现了测试用例,我可以使用 {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 库实现。

【问题讨论】:

    标签: java jenkins testng functional-testing parallel-execution


    【解决方案1】:

    这在很大程度上取决于您如何运行测试。假设您正在谈论在 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 系统、构建工具等会有所帮助。

    Jenkins 细节

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

    【讨论】:

    • 威尔逊,感谢您回答我的问题。要添加更多详细信息,我正在使用上面提到的 xml 文件,该文件在我的 jenkins 作业中有子套件来执行我的测试用例。当它在 jenkins 上执行时,它会在 jenkins 实例的一个执行器上按顺序执行每个子套件 xml。所以我想知道,使用相同的父文件,有什么方法可以在多个执行器或多个从属实例上并行执行这些子套件
    • 您好 Kumar,我根据一些研究添加了更多细节(Jenkins 细节)。希望这会有所帮助。
    • @JamesWilson 嗨,James,你能告诉我如何在 Gitlab CI 上并行运行测试吗?这是我的 .yml 文件。是否也需要注册节点 .image: maven:3-jdk-8 服务:- 名称:selenium/standalone-chrome:latest 别名:gitlab-selenium-server 缓存:路径:- .m2/repository 阶段:-测试测试:阶段:测试脚本:- mvn $MAVEN_CLI_OPTS verify -DsuiteXmlFile=DealFlowTestNg.xml -e 标签:- dlfl-small-runner
    • @Vaibhav_Sharma,读取 .yml 文件有点困难,因为 cmets 不允许格式化。此外,看起来您的问题与原始帖子(即专门在 GitLab 上与 Maven 并行运行测试)相距甚远,它本身可能是一个问题。如果您想提出新问题,请告诉我链接,我会回答。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-29
    • 1970-01-01
    • 1970-01-01
    • 2015-06-11
    • 1970-01-01
    • 2012-05-28
    相关资源
    最近更新 更多