TestNG 标签小结

上一篇 / 下一篇  2008-10-16 15:18:16

@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的值启动多线程


TAG: testNG annotation

 

评分:0

我来说两句

Open Toolbar