@Configuration这个标签只在早期版本使用,已被弃用
@BeforeSuite测试套件前执行,测试套件在testng.xml中定义
@AfterSuite 测试套件后执行,测试套件在testng.xml中定义
@BeforeTest 整个测试开始前执行
@AfterTest 整个测试结束后执行
@BeforeGroups属于指定的组的第一个测试方法执行前发生
@AfterGroups 属于指定的组的最后一个测试方法执行后发生
@BeforeClass当前测试类执行前发生
@AfterClass 当前测试类执行后发生
@BeforeMethod每个测试方法执行前发生
@AfterMethod每个测试方法执行后发生
参数:
alwaysRun 对于before类的方法来说该参数为真表示不管该方法属于哪个组都会执行;对于before类的方法来说该参数为真表示上一个测试方法无论失败或跳过都不影响这个方法的执行
dependsOnGroups 等某些组的方法执行完后执行
dependsOnMethods 等某些方法执行完后执行
enabled 为真时激活
groups 从属的组
inheritGroups 继承定义在类的级别的组
@DataProvider 数据源,标记的方法必须返回Object[][]类型。每个Object[]可以是一个参数列表。
参数:
Name 数据源名称
//This method will provide data to any test method that declares that its Data Provider
//is named "test1"
@DataProvider(name="test1")
publicObject[][]createData1(){
returnnewObject[][]{
{"Cedric",newInteger(36)},
{"Anne",newInteger(37)},
};
}
//This test method declares that its data should be supplied by the Data Provider
//named "test1"
@Test(dataProvider="test1")
publicvoidverifyData1(Stringn1,Integern2){
System.out.println(n1+" "+n2);
}
publicstaticclassStaticProvider{
@DataProvider(name="create")
publicstaticObject[][]createData(){
returnnewObject[][]{
newObject[]{newInteger(42)}
}
}
}
publicclassMyTest{
@Test(dataProvider="create",dataProviderClass=StaticProvider.class)
publicvoidtest(Integern){
// ...
}
}
@Factory 标记工厂方法,产生测试类,返回Object[]类型
public class
WebTestFactory {
@Factory
public Object[] createInstances() {
Object[] result = new Object[10];
for (int i = 0; i < 10; i++) {
result[i] = new WebTest(i * 10);
return result;
}
}
and the new test class is now:
public class
WebTest {
private int m_numberOfTimes;
public WebTest(int numberOfTimes) {
m_numberOfTimes = numberOfTimes;
}
@Test
public void testServer() {
for (int i = 0; i < m_numberOfTimes; i++) {
// access the web page
}
}
}
@Parameters 描述如何向测试方法传递参数
参数:
value 一组变量来填满该方法的参数
@Parameters({"first-name"})
@Test
publicvoidtestSingleString(StringfirstName){
@Parameters("db")
@Test
publicvoidtestNonExistentParameter(@Optional("mysql")Stringdb)
@Test 测试方法或测试类
参数:
alwaysRun 所依赖的方法即便失败了也会执行
dataProvider 指定数据源名称
dataProviderClass从指定类找数据源,不指定则从当前类或父类中找
dependsOnGroups 依赖的组
@Test(groups={"init"})
publicvoidserverStartedOk(){}
@Test(groups={"init"})
publicvoidinitEnvironment(){}
@Test(dependsOnGroups={"init.* })
public void method1() {}
dependsOnMethods 依赖的方法
@Test
publicvoidserverStartedOk(){}
@Test(dependsOnMethods={"serverStartedOk"})
publicvoidmethod1(){}
descrīption 方法的描述
enabled 是否有效
expectedExceptions 期望抛出的异常,如果无异常或不同的异常抛出该测试失败
groups 所属的组
@Test(groups={"functest","checkintest"})
invocationCount 该方法调用的次数
@Test(threadPoolSize=3,invocationCount=10, timeOut=10000)
publicvoidtestServer(){
invocationTimeOut该测试方法的最大执行时间总时间,是多次调用的累加
successPercentage期望的成功比例
sequential 仅对类一级的标记有效,为真时表示该类中所有方法顺序执行。
timeOut 整个测试的最大执行总时间
threadPoolSize 线程池大小。该测试方法按invocationCount的值启动多线程