TestNG基础

TestNG简介

  • TestNG是一个单元测试框架,它提供了注解来帮助管理测试用例
  • 主要作用:发现测试用例、执行测试用例、判断测试结果、生成测试报告

配置TestNG的依赖

配置TestNG的依赖通常是通过构建工具如Maven或Gradle来完成的。

Maven介绍

  • 第三方库
  • 大型仓库

配置TestNG依赖

点击查看代码
<dependencies>  
    <!-- 其他依赖项 -->  
  
    <!-- TestNG依赖项 -->  
    <dependency>  
        <groupId>org.testng</groupId>  
        <artifactId>testng</artifactId>  
        <version>7.4.0</version>  
        <scope>test</scope>  
    </dependency>  
  
    <!-- 如果你的项目还使用了JUnit(比如用于某些遗留代码),确保不要包含JUnit的依赖项在test scope中,  
         因为TestNG内部已经集成了JUnit的兼容层,但如果你确实需要JUnit的某些功能,  
         请确保它的版本与TestNG兼容 -->  
</dependencies>

TestNG常用注解

注解底层原理:代码对一些方法进行了封装,例如main方法,可以将注解下方的方法传入,进行运行

1、注解:@Test:标识方法是一个基于TestNG的测试用例

常用属性
package com.api.login;

import org.testng.annotations.Test;

public class TestLogin {
    //标识它不是一个测试用例
    @Test(enabled = false)
    public void TestLogin001(){
        System.out.println("测试登录的测试用例");
    }
    //改变执行用例的顺序,值越小优先级越高
    @Test(priority = 1)
    public void TestLogin002(){
        System.out.println("测试登录的测试用例002");
    }
    //控制测试用例执行的次数
    @Test(invocationCount = 2)
    public void TestLogin003()
    { System.out.println("执行2次测试登录的测试用例");
    }
    //解决测试用例之间的依赖关系
   @Test(dependsOnMethods = {"TestLogin003"})
    public void TestLogin004()
    { System.out.println("执行依赖情况");
    }
}

2、前后置注解:链接数据库,打开浏览器等
常用
前置注解
@BeforeSuite:该方法将在该套件(Suite)中的所有测试运行之前执行一次。一个套件对应一个顶级模块,通常结合testng.xml文件中的<suite>或<suite-file>使用。
@BeforeTest:该方法将在属于<test>标签内的类的所有测试方法运行之前执行一次。一个<test>标签对应一个子模块。
@BeforeGroups:该方法将在其之前运行的组的列表中的第一个测试方法之前执行。可以指定组名来限制该方法在特定组之前运行。 @BeforeClass:该方法将在调用当前类中的第一个测试方法之前执行一次,并且只执行一次。
@BeforeMethod:该方法将在当前类中的每个测试方法运行之前执行。
package com.api.login;

import org.testng.annotations.*;

public class TestLogin {
    @BeforeSuite
    public  void  Test001(){
     System.out.println("测试套件前置,相当于整个项目");
 }
    @BeforeTest
    public  void  Test002(){
        System.out.println("测试模块前置,相当于一个模块");
    }
    @BeforeClass
    public  void  Test003(){
        System.out.println("测试类前置,相当于一个子模块");
    }
    @BeforeMethod
    public  void  Test004(){
        System.out.println("测试用例套件,相当于一个功能");
    }
    @Test
    public  void  show1(){
        System.out.println("展示:");
    }
    @Test
    public  void  show2(){
        System.out.println("展示:");
    }
    @Test
    public  void  show3(){
        System.out.println("展示:");
    }

}

后置注解
@AfterSuite:该方法将在该套件中的所有测试运行之后执行一次。
@AfterTest:该方法将在属于<test>标签内的类的所有测试方法运行之后执行一次。  @AfterGroups:该方法将在其后运行的组的列表中的最后一个测试方法之后执行。可以指定组名来限制该方法在特定组之后运行。
@AfterClass:该方法将在当前类中的所有测试方法运行之后执行一次,并且只执行一次。
@AfterMethod:该方法将在当前类中的每个测试方法运行之后执行。

posted @ 2024-08-01 11:46  cxy领域展开  阅读(4)  评论(0编辑  收藏  举报