【java测试-testng1】常用注解的使用
1.testng是什么?
是一个测试框架,其灵感来自JUnit和NUnit,但引入了一些新的功能,使其功能更强大,使用更方便。
2.testng常用注解
2.1.pom.xml引入依赖
<dependency> <groupId>org.testng</groupId> <artifactId>testng</artifactId> <version>6.10</version> </dependency>
2.2.编写测试类
package com.coke.testng; import org.testng.annotations.*; public class Basic { @Test public void test1(){ System.out.println("这是第1个测试用例..."); } @Test public void test2(){ System.out.println("这是第2个测试用例..."); } // 忽略测试 @Test(enabled = false) public void test3(){ System.out.println("这是第3个测试用例..."); } @BeforeMethod public void beforeMethod(){ System.out.println("beforeMethod()..."); } @AfterMethod public void afterMethod(){ System.out.println("afterMethod()..."); } @BeforeClass public void beforeClass(){ System.out.println("beforeClass()..."); } @AfterClass public void afterClass(){ System.out.println("afterClass()..."); } @BeforeSuite public void beforeSuite(){ System.out.println("beforeSuite()..."); } @AfterSuite public void afterSuite(){ System.out.println("afterSuite()..."); } }
package com.coke.testng; import org.testng.annotations.Test; // 超时测试 public class TimeOutTest { @Test(timeOut = 4000) public void testSuccess() throws InterruptedException { Thread.sleep(3000); } @Test(timeOut = 2000) public void testFail() throws InterruptedException { Thread.sleep(3000); } }
package com.coke.testng; import org.testng.annotations.Test; public class RunTimeTest { /** * 异常测试,当实际结果与预期的异常一致时,认为测试通过,反之失败 */ @Test(expectedExceptions = RuntimeException.class) public void runTimeExceptionFail(){ System.out.println("这是一个失败的异常测试用例..."); } @Test(expectedExceptions = RuntimeException.class) public void runTimeExceptionSuccess(){ System.out.println("这是一个成功的异常测试用例..."); // 手动抛出异常 throw new RuntimeException(); } @Test public void test1(){ System.out.println("test1()方法执行了"); // 当被依赖的方法执行失败了,后面的测试用例都是ignore throw new RuntimeException(); } @Test public void test2(){ System.out.println("test2()方法执行了"); } // 依赖测试 @Test(dependsOnMethods = {"test1"}) public void test3(){ System.out.println("test3()方法执行了"); } }
2.3.常用注解总结:
/* @Test 注释的方法,表名该方法是测试方法 @BeforeClass 该方法执行在所有测试方法之前,只执行一次 @AfterClass 该方法执行在所有测试方法之后,只执行一次 @BeforeMethod 该方法执行在每个测试方法之前 @AfterMethod 该方法执行在每个测试方法之后 @BeforeSuite 该方法执行在每个测试套件开始之后,只执行一次 @AfterSuite 该方法执行在每个测试套件结束之前,只执行一次 @Test(enabled = false) 忽略该测试方法 @Test(timeOut = 4000) 测试方法执行时间超过4s,认为失败
@Test(expectedExceptions = RuntimeException.class) 异常测试,当实际结果与预期的异常一致时,认为测试通过,反之失败 @Test(dependsOnMethods = {"test1"}) 当被依赖的方法执行失败了,后面的测试用例都是ignore */
---------------------------------------------------
立足软件测试领域,并重新定义测试!
---------------------------------------------------