【问题标题】:Run TestNG groups both sequentially and in parallel按顺序和并行运行 TestNG 组
【发布时间】:2014-06-18 15:02:40
【问题描述】:

好的,参考TestNG doc,我可以使用<suite parallel="tests">顺序(默认在测试套件中)或并行运行测试。

现在这是我的 TestNG 配置

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Complete test suite">
    <listeners>
        <listener class-name="com.uas.test.portlet.integration.util.WebDriverListener" />
        <listener class-name="org.uncommons.reportng.HTMLReporter" />
    </listeners>
    <test name="Parallel tests" parallel="methods" thread-count="4">
        <groups>
            <run>
              <exclude name="sequential-test"></exclude>
            </run>
        </groups>
        <packages>
            <package name="com.uas.test.portlet.integration.main" />
            <package name="com.uas.test.portlet.integration.main.categorymanager" />
            <package name="com.uas.test.portlet.integration.main.admin" />
        </packages>
    </test>
    <test name="Sequential tests" parallel="false" >
        <groups>
            <run>
                <include name="sequential-test"></include>
            </run>
        </groups>
        <packages>
            <package name="com.uas.test.portlet.integration.main" />
            <package name="com.uas.test.portlet.integration.main.categorymanager" />
            <package name="com.uas.test.portlet.integration.main.admin" />
        </packages>
    </test>
</suite>

如您所见,我有两种类型的测试:可以并行运行的测试和其他应该按顺序运行的测试。我的套件中没有parallel=tests 属性,所以&lt;test&gt; 标签顺序运行,这样我的第一个并行测试组首先运行,然后是顺序运行。

这是完美的,但我想比这更进一步,我的顺序测试有 2 个子组,每个子组可以彼此并行运行,但两者都主要并行测试之后...不幸的是我没能做到... 所以总结一下我想要的:

1. RUN Parallel tests main group 
THEN
2. RUN Sequential tests main group
   --> Sequential subgroup A RUNS IN PARALLEL with Sequential subgroup B (test 1 from subgroup A could run in parallel with test 3 from subgroup B, they are independant)
   --> Each test within subgroup A should run sequentially
   --> Each test within subgroup B should run sequentially

关于如何使用 TestNG 配置文件来做到这一点的任何想法? (我想避免使用 Ant 等)。

【问题讨论】:

    标签: testng


    【解决方案1】:

    两个独立的套件可能会有所帮助。它们将按顺序执行。只需根据需要将测试放入其中即可。

     <suite-files>
       <suite-file path="./suite1.xml" />
       <suite-file path="./suite2.xml" />
      </suite-files>
    

    【讨论】:

    • 是的,但是如何在不手动启动的情况下依次启动两个套件?没能实现自动化...
    【解决方案2】:

    从单个套件运行单独套件的步骤。

    (1) 创建一个新的套件 xml 文件,比如 MasterSuite.xml,其中包含套件列表:

    <suite name="allSuites">
     <suite-files>
       <suite-file path="suite1.xml" />
       <suite-file path="suite2.xml" />
      </suite-files>
    </suite>
    

    (2) 要执行此套件,请使用有关如何执行任何 xml 套件的通用方法。

    注意:套件文件路径是相对于 MasterSuite.xml 所在位置的。

    参考:http://testng.org/doc/documentation-main.html#parallel-running

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-11-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-22
      • 2014-09-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多