一、套件测试介绍
测试套件是用于测试软件程序的行为或一组行为的测试用例的集合。在TestNG中,我们可以用一个xml文件(文件名任意),来灵活配置要运行的测试用例。 套件可以包含一个或多个测试,由<suite>标记定义。
testng.xml中有<suite>根标签。用来描述一个测试套件,<suite>标签内部由多个<test>区段组成。
<suite>可接受的合法属性如下
属性 | 描述 |
---|---|
name | 套件的名称,这是一个强制属性。 |
verbose | 运行的级别或详细程度。 一般verbose=从0到9的数,数越大表明testng的日志越详细,一般verbose=2 |
parallel | TestNG是否运行不同的线程来运行这个套件。 |
thread-count | 如果启用并行模式(忽略其他方式),则要使用的线程数。 |
annotations | 在测试中使用的注释类型。 |
time-out | 在本测试中的所有测试方法上使用的默认超时。 |
二、案例
需求:使用testing.xml文件调用testng
LoginTest.java
package com.course.testng.suite;
import org.testng.annotations.Test;
public class LoginTest {
@Test
public void login(){
System.out.println("登陆成功");
}
}
PayTest.java
package com.course.testng.suite;
import org.testng.annotations.Test;
public class PayTest {
@Test
public void paySuccess(){
System.out.println("支付成功");
}
}
SuiteConfig.java
package com.course.testng.suite;
import org.testng.annotations.*;
//写测试共有的东西
public class SuiteConfig {
@BeforeSuite
public void beforeSuite(){
System.out.println("beforeSuite运行");
}
@AfterSuite
public void afterSuite(){
System.out.println("afterSuite运行");
}
@BeforeTest
public void beforeTest(){
System.out.println("beforeTest运行");
}
@AfterTest
public void afterTest(){
System.out.println("afterTest运行");
}
}
testing.xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd" >
<suite name="test"> <!--测试套件-->
<test name="login">
<classes>
<!--SuiteConfig在整个test标签内生效-->
<!--test里面配置了SuiteConfig,才会运行SuiteConfig里的beforeTest和afterTest方法-->
<class name="com.course.testng.suite.SuiteConfig"/>
<class name="com.course.testng.suite.LoginTest"/>
</classes>
</test>
<test name="pay">
<classes>
<class name="com.course.testng.suite.SuiteConfig"/>
<class name="com.course.testng.suite.PayTest"/>
</classes>
</test>
</suite>
在testing.xml上,右键选择run /path/testing.xml,执行结果如下: