参考链接:
1、配置:https://mvnrepository.com/artifact/mysql/mysql-connector-java/6.0.6
1、基本注解
@BeforeSuite - 对于套件测试,在此套件中的所有测试运行之前运行
@AfterSuite - 对于套件测试,在此套件中的所有测试运行之后运行
@BeforeTest - 对于套件测试,在运行属于<test>标签内的类的任何测试方法之前运行
@AfterTest - 对于套件测试,在运行属于<test>标签内的类的所有测试方法都已运行之后运行
@BeforeGroups:在调用属于该组的第一个测试方法之前运行
@AfterGroups:在调用属于组的最后一个测试方法之后运行
@BeforeClass- 在当前类的第一个测试方法之前运行
@AfterClass - 运行当前类中的所有测试方法之后都运行
@BeforeMethod - 在每个测试方法之前运行
@AfterMethod - 在每个测试方法之后运行
@DataProvider - 标记一种方法来提供测试方法的数据。 注释方法必须返回一个Object [] [],其中每个Object []可以被分配给测试方法的参数列表。 要从该DataProvider接收数据的@Test方法需要使用与此注释名称相等的dataProvider名称
@Factory - 将一个方法标记为工厂,返回TestNG将被用作测试类的对象。 该方法必须返回Object []
@Listeners - 定义测试类上的侦听器
@Parameters - 描述如何将参数传递给@Test方法
@Test - 将类或方法标记为测试的一部分
2、多测试用例运行
3、预期异常测试
3.1 此示例显示如何测试运行时异常。 如果 divisionWithException() 方法抛出一个运行时异常—ArithmeticException,它会获得通过.
3.2 . 检查异常
查看一个简单的业务对象,保存和更新方法,如果有错误,则抛出自定义检查的异常.
4、忽略测试
有时,我们编写的代码并没有准备就绪,并且测试用例要测试该方法/代码是否失败(或成功)。
如果使用@Test(enabled = false)注释在测试方法上,则会绕过这个未准备好测试的测试用例。
5、超时测试
@Test(timeOut = 5000)
6、分组测试
使用<groups>标记在testng.xml文件中指定分组。@Test(groups = "test")
7、套件测试
<suite>是testng.xml的根标记。 它描述了一个测试套件,它又由几个<test>部分组成。
下表列出了<suite>接受的所有定义的合法属性。
name : 套件的名称 ,这是一个强制属性。
verbose:运行的级别或详细程度。
parallel:TestNG是否运行不同的线程来运行这个套件。
thread-count:如果运行并行模式(忽略其他方式),则要使用的线程数。
annotations: 在测试中使用的注释类型。
time-out:在本测试中的所有测试方法上使用的默认超时。
8、依赖测试
TestNG 允许指定依赖关系:
在 @test 注释中使用属性 dependsOnMethods 或 dependsOnGroups。如果依赖方法失败,则跳过所有后续的测试方法。如果method2() 依赖于 method1():
dependsOnMethods
和dependsOnGroups
的混合使用。