【Java自动化测试框架--TestNG】

目录

一、 背景介绍

二、核心概念与联系

2.1 JUnit核心概念

2.2 TestNG核心概念

2.3 JUnit与TestNG的联系

三. 核心算法原理的详细讲解

3.1 JUnit算法原理

3.2 TestNG算法原理

四、什么是TestNG

五、 TestNG配置

2.1 Maven项目的结构:

2.2 POM文件中配置:

2.3 TestNG插件安装:

六、 TestNG使用

3.1 编写测试用例脚本

(1)新建测试用例类(2)使用注解

3.2 单个类的用例

3.3 多个类的用例(Test Suite)

七、HttpClient 框架

7.1 get请求无参

7.2 post请求、表单格式参数、携带cookies

7.3 post请求、json格式参数、携带cookies

7.4 处理get请求获取cookies,关联接口post请求携带cookies

八、思考与总结


一、 背景介绍

        JUnit提供了一种简单易用的方法来编写、运行和维护单元测试。TestNG则是一个更高级的单元测试框架,它基于JUnit,但提供了更多的功能和灵活性。TestNG已经被广泛应用于Java项目中,本人主要使用的是TestNG,接下来给大家分享一下Testng的使用方式和操作。

二、核心概念与联系

2.1 JUnit核心概念

测试用例:是一种用于验证代码行为的方法。测试用例应该具有以下特点:独立、可重复、可维护、可读性好。
断言:是用于检查代码行为是否符合预期的语句。例如,assertEqual用于检查两个对象是否相等。
测试套件:是一组相关的测试用例的集合。测试套件可以包含多个测试类,每个测试类可以包含多个测试方法。


2.2 TestNG核心概念

组:是一组相关的测试用例的集合。TestNG中的组可以通过@Test、@Before、@After等注解来定义。
数据驱动:是一种用于自动化测试的方法,它可以通过使用@DataProvider注解来提供测试用例的数据。
参数化:是一种用于实现数据驱动的方法,它可以通过使用@Parameters注解来传递测试用例的参数。

2.3 JUnit与TestNG的联系

JUnit和TestNG都是用于Java单元测试的框架,它们的核心概念和功能有很多相似之处。例如,它们都支持断言、测试套件、测试用例等。但是,TestNG比JUnit更加强大,它提供了更多的功能和灵活性,例如支持组、数据驱动、参数化等。

三. 核心算法原理的详细讲解

3.1 JUnit算法原理

JUnit的核心算法原理是基于测试用例和断言的。具体操作步骤如下:

编写测试用例:测试用例是一种用于验证代码行为的方法。它应该具有以下特点:独立、可重复、可维护、可读性好。
编写断言:断言是用于检查代码行为是否符合预期的语句。例如,assertEqual用于检查两个对象是否相等。
运行测试套件:测试套件是一组相关的测试用例的集合。测试套件可以包含多个测试类,每个测试类可以包含多个测试方法。

3.2 TestNG算法原理

TestNG的核心算法原理是基于组、数据驱动和参数化。具体操作步骤如下:

定义组:组是一组相关的测试用例的集合。TestNG中的组可以通过@Test、@Before、@After等注解来定义。
实现数据驱动:数据驱动是一种用于自动化测试的方法,它可以通过使用@DataProvider注解来提供测试用例的数据。
实现参数化:参数化是一种用于实现数据驱动的方法,它可以通过使用@Parameters注解来传递测试用例的参数。
运行测试套件:测试套件是一组相关的测试用例的集合。测试套件可以包含多个测试类,每个测试类可以包含多个测试方法。

四、什么是TestNG

TestNG是一个开源的自动化测试框架,它受JUnit和NUnit启发,其中“NG”即表示Next Generation,其功能更强大使用更方便,也是目前最流行的测试框架

五、 TestNG配置

2.1 Maven项目的结构:
    ---pom.xml             核心配置,项目根下
    ---src
        ---main      
              ---java      java源码目录
              ---resources   java配置文件目录
        ---test
             ---java       测试源码目录
             ---resources    测试配置目录
    ---target                 编译之后的class文件存放路径
2.2 POM文件中配置:

在maven工程的pom.xml文件中加入以下依赖:

<dependencies>
        <dependency>
            <groupId>org.testng</groupId>
            <artifactId>testng</artifactId>
            <version>6.10</version>
            <scope>test</scope>
        </dependency>
</dependencies>
 <!-- testng.xml所在的路径,这里指的是相对路径 -->
<plugin>
      <artifactId>maven-surefire-plugin</artifactId>
         <configuration>
                <suiteXmlFiles>
                       <suiteXmlFile>testng.xml</suiteXmlFile>
                 </suiteXmlFiles>
         </configuration>
         <version>2.22.1</version>
</plugin>
2.3 TestNG插件安装:

六、 TestNG使用

3.1 编写测试用例脚本
(1)新建测试用例类
(2)使用注解
  • @Test注解:使用改注解的方法或类可以被testNG识别并运行
 @Test(dependsonMethods="test2"):依赖其他方法,运行当前方法之前需要先执行test2
 @Test(alwayRun=true):设置为true时,无论什么情况都会运行
 @Test(description="xxx"):对用例进行说明
 @Test(enabled=false):设置为false时,表示改方法失效
@Test(dataProvider="datas"):设置数据提供者的名称
  • Before/After注解

针对当前项目:

@BeforeSuite:带有该注释的方法将在该套件中的所有测试方法运行之前运行,仅运行一次。
@AfterSuite:带有该注释的方法将在该套件中的所有测试方法运行之后运行,仅运行一次。
@BeforeTest:带有该注释的方法将在运行属于标签<test>内的类的所有测试方法之前执行
@AfterTest:带有该注释的方法将在运行属于标签<test>内的类的所有测试方法之后执行
针对当前类:
@BeforeClass:带有该注释的方法将在调用当前类的第一个测试方法之前执行
@AfterClass:带有该注释的方法将在调用当前类的第一个测试方法之后执行
@BeforMethod:带有该注释的方法将在每个测试方法之前运行
@AfterMethod:带有该注释的方法将在每个测试方法之后运行
@BeforeGroups:此方法保证在调用属于这些组中的任何一个的第一个测试方法之前不久运行。
@AfterGroups:该方法保证在调用属于任何这些组的最后一个测试方法之后不久运行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值