我们有什么方法可以用其他东西替换testng.xml中的多个测试标签

时间:2017-07-19 11:22:40

标签: java xml testng

我有一个包含多个测试标记的testng.xml,每个测试标记都有两个类。目前有10-12个测试用例,因此有10-12个测试标签,但将来这个数字可能会增加到50+,那么在这种情况下,testng.xml会非常繁重。我们有什么方法可以减少代码行。

第二类VerifySuite有@Test注释,无法更改,因为它来自jar。

以下是xml:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Suite">
    <listeners>
        <listener class-name="com.api.reporting.ExtentReporterNG" />
    </listeners>
    <test name="GET TC001_TC002">
        <classes>
            <class name="com.test.scenarios.TC001_TC002" />
            <class name="com.test.api.verification.VerifySuite" />
        </classes>
    </test>
    <test name="GET TC003_TC004">
        <classes>
            <class name="com.test.scenarios.TC003_TC004" />
            <class name="com.test.api.verification.VerifySuite" />
        </classes>
    </test>
    <test name="GET TC005_TC006">
        <classes>
            <class name="com.test.scenarios.TC005_T006" />
            <class name="com.test.api.verification.VerifySuite" />
        </classes>
    </test>
    <test name="GET TC007">
        <classes>
            <class name="com.test.scenarios.TC007" />
            <class name="com.test.api.verification.VerifySuite" />
        </classes>
    </test>
    <test name="POST TC001_TC002">
        <classes>
            <class name="com.test.scenarios.TC001_TC002" />
            <class name="com.test.api.verification.VerifySuite" />
        </classes>
    </test>
</suite> <!-- Suite -->

1 个答案:

答案 0 :(得分:1)

是的,您可以使用TestNG轻松完成此操作。这是

的方式
  1. 确保您使用的是最新发布的TestNG版本,即6.11
  2. 创建TestNG侦听器的实现,即org.testng.IAlterSuiteListener,其中在org.testng.IAlterSuiteListener#alter()方法中,您基本上可以通过代码开始创建XmlTest个对象,然后将它们注入{{1对象。
  3. 您甚至可以对此进行一些了解,其中您可以使用XmlSuite方法提取数据源,例如excel电子表格或csv或包含{{1}名称的json文件}标签和要包含在`标签中的测试类集,并让这个监听器以编程方式编写整个套件xml文件。

    在您的alter()套件xml文件中,您只需指定<test>标记,并添加对您构建的testng.xml实施的引用。

    这应该可以帮助你做你想做的事。