testng.xml 到底是什么?UI测试框架搭建基础问题

没接触过的小伙伴总是听xml这xml那的,却不知道它到底的职责和作用是什么,今天剖析一下; 没有xml,testng也能跑,它并非必要条件; testng运行要么靠纯注解@test,要么通过| testng.xml 显式告诉 TestNG 跑哪些类、哪些方法、用什么参数

什么时候需要些xml?

1.切换平台

一般没有xml的basetest模块会写默认参数 @Optional("android") ,默认跑安卓端,如果你的xml加了

<suite name="MobileSuite">
    <test name="AndroidTests">
        <parameter name="platform" value="android"/>
        <classes>
            <class name="tests.LoginTest"/>
        </classes>
    </test>
</suite>

想跑ios,改value就行

2.Smoke / Regression

用例是@Test,我们支持给它打标签,比如@Test(groups = {"smoke"})

<test name="SmokeTests">
    <groups>
        <run>
            <include name="smoke"/>
        </run>
    </groups>
    <classes>
        <class name="tests.LoginTest"/>
    </classes>
</test>

3.并行

 

<suite name="MobileSuite" parallel="tests" thread-count="3">
    ...
</suite>

4.控制跑特定测试用例

<test name="OnlyLoginTest">
    <classes>
        <class name="tests.LoginTest">
            <methods>
                <include name="testValidLogin"/>
            </methods>
        </class>
    </classes>
</test>

5.监听器

监听器一般通过 testng.xml 注册。

 

标签问题,有哪些标签?

image

 

image

 如何管理? 有时候要跑全量,有时候跑特定

Maven Profile

<profiles>
    <!-- 模式 1:用 testng.xml 控制(按组跑) -->
    <profile>
        <id>suite-mode</id>
        <build>
            <plugins>
                <plugin>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <configuration>
                        <suiteXmlFiles>
                            <suiteXmlFile>src/test/resources/testng.xml</suiteXmlFile>
                        </suiteXmlFiles>
                    </configuration>
                </plugin>
            </plugins>
        </build>
    </profile>

    <!-- 模式 2:不用 testng.xml,自动扫描 -->
    <profile>
        <id>auto-mode</id>
        <build>
            <plugins>
                <plugin>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <configuration>
                        <!-- 不配 suiteXmlFiles,让 Surefire 自动扫描 -->
                    </configuration>
                </plugin>
            </plugins>
        </build>
    </profile>
</profiles>

要用的时候:

# 按 testng.xml 跑
mvn test -P suite-mode

# 自动扫描所有 @Test
mvn test -P auto-mode

 

posted @ 2026-09-20 19:54  安格笔记  阅读(4)  评论(0)    收藏  举报