java testng_java—TestNG单元测试框架

article/2025/9/21 1:32:05

//依赖坐标

org.testng

testng

6.14.3

test

TestNG的常用注解

1、@Test

标记为测试方法

6c4938da58bb0287f498a23e4890ca75.png

2、 @BeforeMethod/@AfterMethod

在某个测试方法(method)执行之前/结束之后

3、@BeforeClass/@AfterClass

在某个测试类(class)所有开始之前/结束之后

4、@BeforeTest/@AfterTest

在某个测试(test)所有测试方法执行开始之前/结束之后

5、@BeforeSuite/@AfterSuite

在某个测试套件(suite)所有测试方法执行开始之前/结束之后

package com.learn.testing;

import org.testng.annotations.*;

public class TestingTest {

@BeforeMethod

publicvoidsetUpMethod(){

System.out.println("测试方法之前");

}

@AfterMethod

publicvoidtearDownMethod(){

System.out.println("测试方法之后");

}

@BeforeClass

publicvoidsetUpClass(){

System.out.println("测试类之前");

}

@AfterClass

publicvoidtearDownClass(){

System.out.println("测试类之后");

}

@Test

publicvoidprintA(){

System.out.println("A");

}

@Test

publicvoidprintB(){

System.out.println("B");

}

}

结果:

测试类之前

测试方法之前

A

测试方法之后

测试方法之前

B

测试方法之后

测试类之后

Test注解常用属性

1、忽略测试:

当我们在测试的过程中,因为某些方面的原因,比如测试方法没有写完,或者有问题,我们暂时希望它不得到执行,我们就可以添加忽略标签来跳过此方法的运行。

@Test(enabled = false)

2、超时测试:

“超时”表示如果自动化测试花费的时间超过指定的毫秒数,那么TestNG将会中止它并将其标记为失败。这样在某些业务场景下,我们认为一个请求时间过长我们就可以直接宣判他因为超时而失败。

@Test(timeout=1000)

timeout属性的单位为毫秒。

@Test(timeOut=1000)public void printA() throwsInterruptedException {

Thread.sleep(2000);

System.out.println("A");

}

3、依赖测试:

测试方法依赖于某些方法

示例:

@Test(dependsOnMethods={"test2"})

方法执行顺序

step1:先执行被依赖的方法

step2:再依次执行没配置依赖的方法

step3:最后执行需要依赖的测试方法

(本来的执行顺序是按照字母先后执行的)

public classTestingTest02 {

@Test(dependsOnMethods= {"printC", "printB"})public voidprintA() {

System.out.println("A");

}

@Testpublic voidprintB() {

System.out.println("B");

}

@Testpublic voidprintC() {

System.out.println("C");

}

}

结果:

B

C

A//A依赖于BC,所以先执行BC

4、测试方法优先级:

@Test(priority = 1)

数字越小,优先级越高

注:如果在一个测试类里面设置了优先级,那么其他的测试类都要设置优先级,不然执行TestNG.xml文件的时候可能会有问题

TestNG常用断言

1、Assert.assertTrue();

判断是否为True

2、Assert.assertFalse();

判断是否为false

3、Assert.assertEquals()

判断是否相等

String expectedValue ="lemon";int statusCode=200;

Assert.assertEquals("lemo",expectedValue);

Assert.assertEquals(404,statusCode);

Assert.assertTrue(statusCode==404);

Assert.assertTrue(statusCode==200);//web自动化一般根据什么来去做断言://1、URL地址 2、title 3、页面提示信息 4、元素属性

TestNG.xml配置文件

f33d58d19579bb85d34ffe5ec3b63760.png

6a5c814eb8b811867d4169cd4859d054.png

7459d994b928e8b01e3145c0f3ef5232.png

657694e285a907b02cdc8303f0952d5f.png

002b4d1410622d0409b4d29f1f897915.png

1ad1e349d413825be11b345f74dbfce0.png

028ec30d6f9a5d326ab55113efdc75da.png

调用Maven命令执行测试用例

5ad9b23f3f931ca0b4a1fd70feab0001.png

17c3e96535fc49fb0b86ebe8f693e51c.png

org.apache.maven.plugins

maven-surefire-plugin

2.7.1

TestNG.xml ----注意这里的TestNG.xml与项目根目录下的TestNG.xml同名

392265a24bb9cf94edd75ecd0ff0c74f.png

12dad5f8b62a6919b3f47fa601502ff1.png

删除通过构建产生的target文件夹方法:

1、手动删除

2、在命令行通过mvn clean删除

1d2f0628835f551e017a37938811a63d.png

maven构建后结果乱码问题解决:

4a09c31c51d571e276833cbc206d9316.png

在pom.xml中加入如下配置指定编码UTF-8

UTF-8

UTF-8

UTF-8

TestNG参数化

(参数化后不能直接运行测试方法,不然读不到testng.xml里面的参数,要去运行testng.xml文件)

43f79828407d54bcc60f8eff6a7973f2.png

fc127933621c400de0374cf2098974a3.png

b9ddd723a9780a24b739e5a6ab16f111.png


http://chatgpt.dhexx.cn/article/5NKlcuFJ.shtml

相关文章

TestNG教程三:TestNG中的监听

TestNG中的监听 1.使用监听的目的: Testng虽然提供了不少强大的功能和灵活的选项,但不能解决所有的问题,使用监听器就是用来定制额外的功能以满足我们的需求的; 2.监听器具体实现: 监听器实际上是一些预定义的java接…

TestNG教程二:testNG常用测试类型

1.异常测试 package com.testngdemo; import org.testng.annotations.Test; public class test { Test(expectedExceptions ArithmeticException.class ) public void divisionWithException() { int i 1 / 0; System.out.println("After division the value of i is…

TestNg学习

TestNG是一个测试框架,可以简化广泛的测试需求。 建立工程 首先我们在idea中应该新建一个project,并选择“maven”,点击下一步(如下图) 填写groupId(一般为包名)和ArtifactId(一般…

TestNG教程一:testNG简介

1.TestNG是什么? TestNG是一个测试框架,其灵感来自JUnit和NUnit,但引入了一些新的功能,使其功能更强大,使用更方便。 TestNG是一个开源自动化测试框架;TestNG表示下一代(Next Generation的首字母)。 TestNG类似于JUnit(特别是JU…

TestNG用法

【bak】https://www.cnblogs.com/uncleyong/p/15855473.html TestNG简介 单元测试框架&#xff0c;可以用来设计用例的执行流程 创建maven项目&#xff0c;添加依赖 <dependency><groupId>org.testng</groupId><artifactId>testng</artifactId>&…

testNG - 无法访问org.testng.Assert

【异常】无法访问org.testng.Assert 问题表现问题排查问题解决 问题表现 问题排查 报错的是无法访问Assert类&#xff0c;我琢磨着这个类是testNG中很常用的一个类&#xff0c;怎么会找不到&#xff1f; 先从项目的jar包中管理入手&#xff0c;看看有没有其他毛病。 果不其然…

TestNG-学习笔记

https://testng.org/doc/documentation-main.html TestNG概述 TestNG is a testing framework inspired from JUnit and NUnit but introducing some new functionalities that make it more powerful and easier to use, such as: Annotations. Run your tests in arbitrar…

TestNG的使用

testng在maven项目中的使用 pom.xml <dependencies><dependency><groupId>org.testng</groupId><artifactId>testng</artifactId><version>7.4.0</version><scope>test</scope></dependency> </depend…

TestNG

1 TestNG简介 TestNG是Java中的一个测试框架&#xff0c;是一个目前很流行实用的单元测试框架&#xff0c;有完善的用例管理模块&#xff0c;配合Maven能够很方便管理依赖第三方插件。 TestNG消除了大部分的旧框架的限制&#xff0c;使开发人员能够编写更加灵活和强大的测试。…

TestNG自动化测试框架详解

TestNG 文章目录 TestNG一、概述与使用1.1 配置环境1.2 测试方法1.3 使用xml文件 二、测试方法常用注解2.1 配置类注解2.2 非配置类注解2.2.1 Parameters2.2.2 DataProvider 三、依赖测试四、忽略测试五、超时测试六、分组测试七、失败重试机制7.1 IRetryAnalyzer接口7.2 测试方…

TestNG整理

1 基本概念 TestNG:即Testing, Next Generation,下一代测试技术,是根据JUnit和NUnit思想,采用jdk的annotation技术来强化测试功能并借助XML 文件强化测试组织结构而构建的测试框架。最新版本5.12,Eclipse插件最新版本:testng-eclipse-5.12.0.6 TestNG的应用范围: 单…

TestNG使用教程详解

一、TestNG介绍 TestNG是Java中的一个测试框架&#xff0c; 类似于JUnit 和NUnit, 功能都差不多&#xff0c; 只是功能更加强大&#xff0c;使用也更方便。 详细使用说明请参考官方链接&#xff1a;TestNG - Welcome WIKI教程&#xff1a;TestNG - 小组测试( Group Test)_学习…

TestNG单元测试框架详解

目录 前言 ​1. TestNG使用流程 1.1TestNG安装 1.2 创建Maven项目 1.3 Maven配置 1.4 项目TestNG测试类 1.5 运行TestNG 2、TestNG常用注解 3.xml方式运行 3.1 鼠标右击testng.xml运行 3.1 使用maven运行 4. 常用的断言&#xff08;assert&#xff09; 5. TestNG预…

使用ZRender类库画直线、圆弧、曲线以及点在线上的运动

最近在学习Zrender类库&#xff0c;并利用Zrender 让点在直线、圆弧、曲线上运动。大概的写了一些. Zrender是二维绘图引擎&#xff0c;它提供 Canvas、SVG、VML 等多种渲染方式。ZRender 也是 ECharts 的渲染器. 这里我运用的是Canvas画布去画的.想了解Zrender内的属性&…

js画图插件-zrender

zrender&#xff08;Zlevel Render&#xff09; 是一个轻量级的Canvas类库&#xff0c;MVC封装&#xff0c;数据驱动&#xff0c;提供类Dom事件模型&#xff0c;让canvas绘图大不同&#xff01; MVC核心封装实现图形仓库、视图渲染和交互控制&#xff1a; Stroage(M) : shape数…

ZRender文档研读

ZRender文档研读 (基于4.3.2版本) 不使用最新的5.x.x的版本是因为线上文档和最新版本JS文件不匹配-2022年6月13日 1、文档地址 1、官方文档的地址&#xff1a;https://ecomfe.github.io/zrender-doc/public/api.html#zrenderdisplayable 2、Github地址&#xff1a;https://git…

React Developer Tools 下载

React Developer Tools 下载 方法一&#xff1a;网页扩展工具 搜索 React Developer Tools 下载&#xff08;若浏览器不支持搜索React &#xff0c;行不通&#xff09; 打开chrome 浏览器 (只有 chrome 支持 React Developer Tools&#xff09;点击网页工具栏 右上方 确认添…

zrender TypeError: “x“ is not a constructor

如果有兴趣了解更多相关内容&#xff0c;欢迎来我的个人网站看看&#xff1a;耶瞳空间 我是调用zrender的init方法报错&#xff0c;如下图&#xff1a; 然后经过大佬指点&#xff0c;这种开发环境没问题但生产环境报错的东西&#xff0c;一般是因为打包的时候被tree-shaking…

vue+zrender实现医院体温单

项目背景 医院医护项目需求&#xff0c;需要用H5做一个通用的体温单 项目演示 版本一 版本二 项目代码简介 由vue-cli4脚手架快速搭建生成&#xff0c;主要代码都在thermometer.vue文件里面&#xff0c;后续修改也主要是在这个文件修改。 项目需求难点在中间的网格部分…

ZRender开发

ZRender开发 开发文档&#xff1a;https://ecomfe.github.io/zrender-doc/public/ <!-- eslint-disable no-undef --> <template><div class"config-page"><div class"header"><el-button click"handleAdd">撒…