testNG注解简介
@Before和@After
- Before分类有@BeforeSuite,@BeforeTest,@BeforeGroups,@BeforeClass,@BeforeMethod。
@BeforeClass:启动测试前的一些准备工作,测试进行的前提条件。 - After分类有@AfterSuite,@AfterTest,@AfterGroups,@AfterClass,@AfterMethod。
@AfterClass:测试运行结束后的步骤,一般为将环境恢复到测试开始之前的状态。
@DataProvider
标记一个方法是用来给其他测试方法提供数据的方法。要求该方法返回结果必须是object[][]。
@Factory
标记这个方法是一个工厂,方法返回必须是一个对象。
@Listeners
在测试方法定义一个监听。例如在使用selenium进行自动化测试中需要用到这个时间监听功能,方便输出日志。
@Parameters
描述了如何给一个测试方法传递参数。
@Test
在@Test下有很多选项可以设置,如用例之间的依赖关系。
timeOut属性
timeOut属性是用来做超时判断的,如果一个方法执行需要时间限制,可以在测试时使用timeOut来限制时间,如果方法的运行时间超过了timeOut所设置的时间,测试时就会跑出异常,如果在timeOut设置时间之内运行完成,对于时间超时测试顺利通过,利用@Test注释中的timeOut属性就可以实现对时间监控的功能。
enabled属性
在TestNG中,如果在测试方法前加了@Test注释,却没使用任何属性,当前这个测试用例就是默认执行的。在@Test注释中的enabled属性可以用来限制该条用例是否需要被执行,enabled属性有两个值true和false。当enabled属性值为false时,当前用例就会不执行,在运行测试脚本的时候,就会跳过此条用例执行其他的用例。相反,为true时是需要执行的。
priority属性
@Test注释中的priority属性可以用来设置用例的优先级,不设置priority属性时,priority的属性值默认为0,在用例执行时,priority的属性值越小,表示优先级越高,就会越早执行。
invocationCount属性
@Tes中的invocationCount属性是用来表示用例被调用执行的次数总计,也就是说,利用这个属性可以设置用例的执行次数,让一个用例跑多次。
invocationTimeOut属性
@Test中的invocationTimeOut属性可以用来设置一个最大毫秒数来计算执行多次后总共耗费的时间为多少,总耗时不能超过所设置的值,否则会抛出异常。这个属性需要和invocationCount结合起来使用,在进行接口测试或性能测试时,需要测试一个功能的稳定性,可以使用invocationCount和invocationTimeOut两个属性结合进行测试。
dependsOnMethods属性
这个属性是用来确定依赖关系的,使用该属性确定了依赖方法后,在执行当前用例的测试方法时,需要先去运行指定的依赖方法后,再去执行当前的用例脚本。 使用dependsOnMethods属性后,用例执行的顺序原则为:
- 被依赖的方法先执行;
- 接着执行没有配置依赖的;
- 最后执行需要依赖的;
- 如果没有依赖关系,则按顺序执行。
|