此文主要讲述用 TestNG 基础的 annotation (注解)知识,及其执行的顺序,并通过一个 TestNG 简单的实例演示 annotation 的执行顺序。
希望能对初学 TestNG 测试框架的亲们有所帮助。若有不足之处,敬请大神指正,不胜感激!
言归正传,以下为 TestNG 常用的 annotation 及其释义,敬请参阅。
@BeforeSuite:被此注解的方法将在所有测试运行之前运行该方法。
@AfterSuite: 被此注解的方法将在所有测试运行之后运行该方法。
@BeforeTest: 被此注解的方法,将在测试运行之前运行。
@AfterTest: 被此注解的方法,将在测试运行之后运行。
@BeforeGroups:被此配置的方法,将在列表中的 group 前运行,这个方法保证在第一个属于这些组列表的测试方法调用前运行。
@AfterGroups:被此配置的方法,将在列表中的 group 后运行,这个方法保证在最后一个属于这些组列表的测试方法调用后运行。
@BeforeClass:被此注解的方法,将在当前类的第一个测试方法调用之前运行。
@AfterClass:被此注解的方法,将在当前类的所有测试方法调用之后运行。
@BeforeMethod:被此注解的方法,将在每个测试方法调用之前运行。
@AfterMethod:被此注解的方法,将在每个测试方法调用之后运行。
annotation 执行顺序:BeforeSuite > BeforeTest > BeforeClass > DataProvider > BeforeMethod > Test > AfterMethod > AfterClass > AfterTest > AfterSuite
实例源代码如下所示:
1 /** 2 * Aaron.ffp Inc. 3 * Copyright (c) 2004-2015 All Rights Reserved. 4 */ 5 package main.java.aaron.sele.demo; 6 7 import org.testng.Assert; 8 import org.testng.annotations.Test; 9 import org.testng.annotations.BeforeMethod; 10 import org.testng.annotations.AfterMethod; 11 import org.testng.annotations.DataProvider; 12 import org.testng.annotations.BeforeClass; 13 import org.testng.annotations.AfterClass; 14 import org.testng.annotations.BeforeTest; 15 import org.testng.annotations.AfterTest; 16 import org.testng.annotations.BeforeSuite; 17 import org.testng.annotations.AfterSuite; 18 19 /** 20 * TestNG annotation(注解)执行顺序实例 21 * 22 * @author Aaron.ffp 23 * @version V1.0.0: autoUISelenium main.java.aaron.sele.demo TestNG_annotationDemo.java, 2015-1-23 00:57:24 Exp $ 24 */ 25 public class TestNG_annotationDemo { 26 @Test(dataProvider = "add") 27 public void f(int a, int b, int s) { 28 System.out.println("Test"); 29 Assert.assertEquals((a + b), s, a + " + " + b + " <> " + s);; 30 } 31 32 @BeforeMethod 33 public void beforeMethod() { 34 System.out.println("BeforeMethod"); 35 } 36 37 @AfterMethod 38 public void afterMethod() { 39 System.out.println("AfterMethod"); 40 } 41 42 @DataProvider 43 public Object[][] add() { 44 System.out.println("DataProvider"); 45 return new Object[][] { 46 new Object[] { 1, 3, 4 }, 47 new Object[] { 2, 5, 7 }, 48 new Object[] { 2, -5, -3 }, 49 }; 50 } 51 52 @BeforeClass 53 public void beforeClass() { 54 System.out.println("BeforeClass"); 55 } 56 57 @AfterClass 58 public void afterClass() { 59 System.out.println("AfterClass"); 60 } 61 62 @BeforeTest 63 public void beforeTest() { 64 System.out.println("BeforeTest"); 65 } 66 67 @AfterTest 68 public void afterTest() { 69 System.out.println("AfterTest"); 70 } 71 72 @BeforeSuite 73 public void beforeSuite() { 74 System.out.println("BeforeSuite"); 75 } 76 77 @AfterSuite 78 public void afterSuite() { 79 System.out.println("AfterSuite"); 80 } 81 }
脚本执行结果如下所示:
annotation 执行顺序为:BeforeSuite > BeforeTest > DataProvider > BeforeMethod > Test > AfterMethod > AfterClass > AfterTest > AfterSuite
至此,TestNG学习-002-annotaton 注解概述及其执行顺序 顺利完结,希望此文能够给初识 TestNG 测试框架的您一份参考。
最后,非常感谢亲的驻足,希望此文能对亲有所帮助。热烈欢迎亲一起探讨,共同进步。非常感谢! ^_^