入门的篇幅会写的比较长,毕竟基础要理解好。在学习TestNG注解前,我们先了解基本的名词,留个印象。
TestNG名词解释:
1.TestNG方法(method):是一个在代码内使用@Test注解标注的方法。下面代码中的isDuckMeal()就是一个测试方法。
@Test
public void isDuckMeal() {
//do sth
}
2.TestNG 组(group):TestNG方法可以加上groups="groupid"的属性来为方法划分组,后续可以在xml文件中来决定运行哪些组。下面的isClean方法就属于groupxxx组。
@Test(groups="groupxxx")
public void isClean(){
//do sth
}
下面的配置在xml中排除了groupxxx组。运行的时候,将不会运行所有属于groupxxx组的方法。
<groups>
<run>
<!--排除全部属于groupxxx组的Test Method-->
<exclude name="groupxxx"/>
</run>
</groups>
3.TestNG类(class):是包含至少一个TesdNG注解的Java类。可以包含多个测试方法。在xml文件中由<class>标签定义了这个Test所涉及的class。
4.TestNG用例(test):是多个TestNG类的组合。在xml文件中由<test>标签定义。
5.TestNG套件(suite):定义了一组业务级粒度的测试动作,它由一个或多个TestNG用例(Test)组成,在xml文件中由<suite>标签定义。
除了@Test注解外,TestNG还提供了丰富的注解满足各种测试场景需求。我们这里先讲最常见的关于执行时机的注解。一下子塞太多也消化不了。
TestNG执行时机注解:在同一个TestNG默认会按照方法的首字母升序执行TestNG Method。
@BeforeSuite:被注解的方法在所属套件(suite)内会最先运行。
@AfterSuite:被注解的方法在所属套件(suite)内会在最后运行。
@BeforeTest:被注解的方法会在所属的类所属的Test用例下最先运行。
@AfterTest:被注解的方法会在这个方法所属的类所属的Test用例下最后运行。
@BeforeClass:被注解的方法会在这个方法所属的类运行时最先运行。
@AfterClass:被注解的方法会在这个方法所属的类运行时最后运行。
@BeforeGroups:被注解的