TestNG.xml
2017-11-14 本文已影响49人
我为峰2014
testng.xml文件是为了更方便的是配置测试用例,测试套件,利用这个文件,我们可以跑同一个类或者多个不同类里面的测试用例
TestNG通过设置testng.xml文件能做以下事情
- 创建来源不同包、类、方法的测试套件
- 包括一些选项,例如失败的用例可以重跑。
- 支持使用正则表达式
- 运行把外部参数传入测试方法
- 支持配置多线程的执行环境
例子
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
//TestNG的XML文件声明
<suite name="Default Suite">
<test name="Java_Learn">
<classes>
<class name="com.java.learn.TestNG_Demo1"/>
</classes>
</test> <!-- Java_Learn -->
</suite> <!-- Default Suite -->
suite管理多个test,而test管理多个class,最小单元是一个class文件。
创建来源不同包、类、方法的测试套件
复制一份测试文件到同一个包下,修改下文件名称,和用例输出内容。然后新建一个包,复制一份刚才的用例类,当做我们的第三个测试类文件
![](https://img.haomeiwen.com/i8459416/440ca27c43264a74.png)
把新建的测试类添加到testng.xml文件中
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Default Suite">
<test name="Java_Learn">
<classes>
<class name="com.java.learn.TestNG_Demo1"/>
<!-- 添加不同测试类文件 -->
<class name="com.java.learn.TestNG_Demo2"/>
<class name="demo2.TestNG_Demo3"/>
</classes>
</test>
</suite>
保存这个文件,并拷贝到你当前Java工程的根目录,这个文件名称随便取
![](https://img.haomeiwen.com/i8459416/7af1ec19d342e32e.png)
也可以指定包名来替代类名
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Default Suite">
<test name="Java_Learn">
<packages>
<package name="com.java.learn"/>
<!-- 添加不同测试类文件 -->
<package name="demo2"/>
</packages>
</test>
</suite>
在这个例子中,TestNG会查看所有在com.java.learn···和
demo2···的类,并且只保留含有```TestNG annotations···的类
也可以指定要包含和排除掉的组和方法
<test name="***">
<groups>
<run>
<exclude name="***" />
<include name="***" />
</run>
</groups>
<classes>
<class name="***">
<methods>
<include name="***" />
</methods>
</class>
</classes>
</test>
也可以在testng.xml定义新的group,并且在属性中指明额外的详细信息,例如是否并行运行,使用多少个线程,并且是否正在运行JUnit测试等等……
让失败的用例重新跑
在运行自动化测试用例的时候,经常会出现一些异常的情况的情况导致用例失败的问题。所以我们可能会希望对于失败的测试用例再重新运行一次
在github找到了一个现有的轮子:arrow
![](https://img.haomeiwen.com/i8459416/e4ce5d23166e63eb.png)
支持使用正则表达式
TestNG中的include/exclude属性支持使用正则表达式