TestNG按顺序运行测试

3
我有一个如下所示的testng.xml文件:
<suite name="Excel Control File Suite Set" 
        thread-count="30" configfailurepolicy="continue">

        <test name="Excel Test" parallel="instances">
            <classes>
                <class name="com.selenium.engine.TestRunner1">
                </class>
            </classes>
        </test>
        <test name="Excel Test 1" parallel="instances">
            <classes>
                <class name="com.selenium.engine.TestRunner2">
                </class>
            </classes>
        </test>
    </suite>

这个文件首先调用我的TestRunner1,获取所有测试用例实例,然后调用TestRunner2,收集所有实例并一起启动所有测试实例的执行。我如何控制流程,以便我首先运行TestRunner1,一旦执行完成,我可以从文件中启动TestRunner2。如果需要更多信息或者我的表述不够清晰,请告诉我。

1个回答

3

parallel="instances"更改为parallel="methods",这将并行执行TestRunner1和TestRunner2的方法,但在TestRunner1完成后才会执行TestRunner2。

所需更改:-

<test name="Excel Test" parallel="methods">
    <classes>
         <class name="com.selenium.engine.TestRunner1"> </class>
    </classes>
</test>
<test name="Excel Test 1" parallel="methods">
    <classes>
         <class name="com.selenium.engine.TestRunner2"> </class>
    </classes>
</test>
  • parallel="methods":TestNG会在单独的线程中运行所有测试方法。依赖方法也将在单独的线程中运行,但它们将遵循您指定的顺序。

  • parallel="tests":TestNG将在同一个标签中的所有方法在同一个线程中运行,但是每个标签将在不同的线程中运行。这允许您将所有不支持多线程的类分组到同一个中,并保证它们都在同一个线程中运行,同时利用TestNG尽可能多地使用线程来运行测试。

  • parallel="classes":TestNG将在同一个类中的所有方法在同一个线程中运行,但每个类将在不同的线程中运行。

  • parallel="instances":TestNG将在同一个实例中的所有方法在同一个线程中运行,但两个不同实例上的方法将在不同的线程中运行。

参考资料:-
TestNG并行运行文档


嘿,我这里有一个问题。当我使用parallel="methods"时,并没有启动所有的实例。我尝试在测试级别和套件级别设置thread-count="30",但这并没有帮助,只有2-3个线程被启动。我想要充分利用我的30个节点。你有任何想法吗? - user1658435
当设置parallel="methods"时,线程数将应用于方法,并且每个类的30个方法应在单独的线程中执行,一旦一个类中所有方法的执行完成,则执行其他类。 - manishgdev

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接