簡體   English   中英

如何在多台機器上並行執行testNG測試用例?

[英]How can I execute testNG test cases in parallel on multiple machines?

我已經為服務級別測試實現了測試用例,我可以使用{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管道來說明我的答案。

如果您能夠從命令行運行單個套件。 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有一篇博文 ,講述了並行運行的工作。 請查看該帖子上的拆分測試部分,它可能正是您所尋找的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM