并行运行 TestNG QAF BDD 测试

Posted

技术标签:

【中文标题】并行运行 TestNG QAF BDD 测试【英文标题】:Running TestNG QAF BDD tests in Parallel 【发布时间】:2021-03-15 18:56:18 【问题描述】:

如何使用 TestNG 在一个文件夹中并行运行所有 Qmerty 测试,我的配置 XML 如下所示,但 resources/scenarios/smoketests 文件夹中的测试是没有并行运行

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Suite"  thread-count="5" verbose="1" parallel="tests">
    <listeners>
        <listener class-name="com.mycompany.project.BDD.listeners.BDDListener"></listener>
    </listeners>
    <test name="All Smoke Tests">
        <parameter name="scenario.file.loc" value="resources/scenarios/smoketests" />
        <parameter name="step.provider.pkg" value="com.mycompany.project.BDD" />
        <classes>
            <class name="com.qmetry.qaf.automation.step.client.text.BDDTestFactory2" />
        </classes>
    </test>
</suite>

但在 XML 下面并行运行测试,但我不想每次我的团队添加新测试时都在此文件中添加测试

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Suite"  thread-count="5" verbose="1">
<listeners>
    <listener class-name="com.mycompany.project.BDD.listeners.BDDListener"></listener>
</listeners>
<test name="Smoke-Test-1">
    <parameter name="scenario.file.loc" value="resources/scenarios/smoketests/login.feature" />
    <parameter name="step.provider.pkg" value="com.mycompany.project.BDD" />
    <classes>
        <class name="com.qmetry.qaf.automation.step.client.text.BDDTestFactory2" />
    </classes>
</test>
<test name="Smoke-Test-2">
    <parameter name="scenario.file.loc" value="resources/bdd/scenarios/smoketests/logout.feature" />
    <parameter name="step.provider.pkg" value="com.mycompany.project.BDD" />
    <classes>
        <class name="com.qmetry.qaf.automation.step.client.text.BDDTestFactory2" />
    </classes>
</test>
</suite>

提前致谢。

【问题讨论】:

【参考方案1】:

从您提供的相关配置文件中: 在 #1 中,您需要使用 parallel="methods" 而不是 parallel="tests" 或在测试节点中添加 parallel="methods"

例如:

<suite name="Suite"  thread-count="5" verbose="1" parallel="methods">
   <test name="Smoke-Test-1">

或者

<suite name="Suite"  thread-count="5" verbose="1">
   <test name="Smoke-Test-1" parallel="methods">

在 #2 中,您提供了 thread-count="1",这就是为什么它无法提供多个线程用于并行执行!

【讨论】:

非常感谢 user861594。我能够并行运行测试。在 #2 中,我实际上在代码中添加了“thread-count=5”,但这里是错字。

以上是关于并行运行 TestNG QAF BDD 测试的主要内容,如果未能解决你的问题,请参考以下文章

如何在并行 JVM 进程(不是线程)中运行 TestNG 测试

并行运行测试时,testng-results.xml 文件被覆盖

如何使用带有geb的testng并行运行执行测试类

Gradle 并行运行 TestNG 套件

需要并行运行TestNG套件和测试

TestNG系列教程:并行执行测试