测试框架TestNG
TestNG的介绍:
适合测试人员使用的原因:
- 比Junit涵盖功能更全面的测试框架
- Junit更适合隔离性比较强的单元测试
- TestNG更适合复杂的集成测试
如何在maven中引用testng:
在pom.xml文件中添加:
<dependencies>
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>6.10</version>
</dependency>
</dependencies>
引用模板可以去maven仓库中查:https://mvnrepository.com/
搜索testng–选择testng–选择你想引用的testng版本,如6.10–复制模板到maven项目中的pom.xml文件中即可
TestNG基本注解与执行顺序介绍
@Test:将类或方法标记为测试的一部分。
@BeforeSuite:带注释的方法将在该套件中的所有测试运行之前运行。
@AfterSuite:带注释的方法将在运行此套件中的所有测试之后运行。
@BeforeTest:带注释的方法将在运行任何属于<test>标记内的类的测试方法之前运行。
@AfterTest:带注释的方法将在所有属于<test>标记内的类的测试方法运行后运行。
@BeforeGroups:此配置方法将在其之前运行的组的列表。保证此方法可以在调用属于任何一个组的第一个测试方法之前不久运行。
@AfterGroups:此配置方法将在其后运行的组的列表。保证在调用属于这些组中任何一个的最后一个测试方法后不久便可以运行该方法。
@BeforeClass:带注释的方法将在调用当前类中的第一个测试方法之前运行。
@AfterClass:带注释的方法将在当前类中的所有测试方法运行之后运行。
@BeforeMethod:带注释的方法将在每个测试方法之前运行。
@AfterMethod:带注释的方法将在每种测试方法之后运行。
BasicAnnotation 类
package com.coursr.testng;
import org.testng.annotations.*;
/**
* Created by HFJY on 2020-12-2.
*/
public class BasicAnnotation {
//最基本的注解,标识着它是一个测试的方法,用来把方法标记为测试的一部分
@Test
public void testCase1(){
System.out.println("Test这是测试用例1");
}
@Test
public void testCase2(){
System.out.println("Test这是测试用例2");
}
@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 beforeSuit(){
System.out.println("BeforeSuite测试套件");
}
@AfterSuite
public void afterSuit(){
System.out.println("AfterSuite测试套件");
}
}
套件测试
SuiteConfig类:
package com.course.testng;
import org.testng.annotations.AfterSuite;
import org.testng.annotations.AfterTest;
import org.testng.annotations.BeforeSuite;
import org.testng.annotations.BeforeTest;
/**
* Created by HFJY on 2020-12-2.
*/
public class SuiteConfig {
@BeforeSuite
public void beforeSuite(){
System.out.println("before suite运行啦");
}
@AfterSuite
public void afterSuite(){
System.out.println("after suite运行啦");
}
@BeforeTest
public void beforeTest(){
System.out.println("beforeTest");
}
@AfterTest
public void afterTest(){
System.out.println("afterTest");
}
}
LoginTest类
package com.course.testng;
import org.testng.annotations.Test;
/**
* Created by HFJY on 2020-12-2.
*/
public class LoginTest {
@Test
public void loginTaoBao(){
System.out.println("淘宝登录成功"