JUnit主要用于单元测试,而TestNG在JUnit的基础上做了很多改进,更适合做全栈自动化测试的整体框架。
在TestNG中,一个用@Test注解修饰的方法代表一个测试用例。
一个Test代表一系列Class的合集
一个Suite代表一系列Test的合集
一个Suite对应一个顶级模块,比如一个软件项目分为4个模块,那么每个模块就是一个Suite。
一个Test对应一个子模块
@BeforeSuite、@AfterSuite、@BeforeTest、@AfterTest、@BeforeClass和@AfterClass控制测试执行的粒度是不同的。
一个测试用例(@Test修饰的Java方法)可以属于多个分组。
TestNG做数据驱动时使用了@DataProvider和@Parameters注解,后者需要和testng.xml文件配合。
@Test注解的方法
①description代表测试用例描述,控制台会打印输出该描述。
②priority代表优先级,数字越小,优先级越高,默认值为0
③enabled的默认值为true,代表不启用。当enabled的值为false时,表示禁用
⑤dependsOnMethods代表依赖一个或多个方法,dependsOnGroups代表依赖一个或多个分组。一旦被依赖的测试用例执行失败,则TestNG将跳过该测试用例。
testng.xml
testng.xml文件的作用是控制测试执行的过程。
parameter 和@Parameters注解配合使用可以给测试用例传递参数。
做一下白盒分析。