我的编程空间,编程开发者的网络收藏夹
学习永远不晚

SpringBoot2的JUnit5与指标监控怎么使用

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

SpringBoot2的JUnit5与指标监控怎么使用

这篇文章主要介绍“SpringBoot2的JUnit5与指标监控怎么使用”,在日常操作中,相信很多人在SpringBoot2的JUnit5与指标监控怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”SpringBoot2的JUnit5与指标监控怎么使用”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

1 单元测试JUnit 5

1.1JUnit 5简介以及使用

  JUnit5作为最新版本的JUnit框架与之前版本的Junit框架有很大的不同。JUnit5主要由三个不同子项目的几个不同模块组成:JUnit Platform、JUnit Jupiter、JUnit Vintage。

  • JUnit Platform: 它是在JVM上启动测试框架的基础,不仅支持Junit自制的测试引擎,其他测试引擎也都可以接入。

  • JUnit Jupiter: 提供了JUnit5的新的编程模型,是JUnit5新特性的核心。内部 包含了一个测试引擎,用于在Junit Platform上运行。

  • JUnit Vintage: 由于JUint已经发展多年,为了照顾老的项目,JUnit Vintage提供了兼容JUnit4.x,Junit3.x的测试引擎。

  在这里我们需要了解的是:SpringBoot 2.4 以上版本移除了默认对JUnit Vintage的依赖。如果需要兼容junit4需要自行引入,不引入的话就不能使用junit4的功能@Test,但是JUnit5也有一个@Test注解能够完成同样的功能

使用: 由上面的JUnit5分析可知:要想使用JUnit5并兼容JUnit以前的版本的话,必须引用以下两个依赖

<!--测试的启动器依赖--><dependency>    <groupId>org.springframework.boot</groupId>    <artifactId>spring-boot-starter-test</artifactId>    <scope>test</scope></dependency><!--兼容JUnit4版本的单元测试--><dependency>    <groupId>org.junit.vintage</groupId>    <artifactId>junit-vintage-engine</artifactId>    <scope>test</scope>    <exclusions>        <exclusion>            <groupId>org.hamcrest</groupId>            <artifactId>hamcrest-core</artifactId>        </exclusion>    </exclusions></dependency>

然后使用@SpringBootTest注解标注测试类,使用@Test标注测试方法

1.2 常用的测试注解

  官方文档中已经定义并解释了所有的注解,可以通过这个链接进行查看官方文档的链接地址接下来会选取常用的几个注解进行讲解学习

  • @SpringBootTest和@Test不再赘述

  • @DisplayName注解:控制台砖展示名

SpringBoot2的JUnit5与指标监控怎么使用

  • @BeforeEach注解:每个方法执行之前执行@AfterEach注解:每个方法执行之后执行

SpringBoot2的JUnit5与指标监控怎么使用

  • @BeforeAll注解:所有方法执行之前执行@AfterAll注解:所有方法执行之后执行 值得注意的是,这两个注解的修饰的方法都必须使用static修饰

SpringBoot2的JUnit5与指标监控怎么使用

  • @Disable注解:在运行测试类的时候禁用这个方法,可以单独执行@Timeout注解:设置测试方法的执行时间,超过这个时间则抛异常

SpringBoot2的JUnit5与指标监控怎么使用

  • @ExtendWith注解:设置测试类的测试驱动,@SpringBootTest注解是个复合注解,其中底层就有

  • @ExtendWith注解指定了测试类使用的是SpringBoot的测试驱动

  • @RepeatedTest注解:指定方法重复次数

SpringBoot2的JUnit5与指标监控怎么使用

1.3 断言(assertions)

  断言是测试方法中的核心部分,用来对测试需要满足的条件进行验证。所谓断言就是检查业务逻辑返回的数据是否合理,在所有的测试运行结束以后,会产生一个详细的测试报告。值得注意的是:当出现一个断言失败之后,从那个断言开始后面的所有代码都不会执行 JUnit 5 内置的断言可以分成如下几个类别:

简单断言

SpringBoot2的JUnit5与指标监控怎么使用

以上方法的用法如下(以assertEquals方法为例):

SpringBoot2的JUnit5与指标监控怎么使用

数组断言

SpringBoot2的JUnit5与指标监控怎么使用

组合断言 组合断言需要所有的参数都满足的情况下才会通过,否则会返回出错的断言,可以以用来一个方法进行多个简单断言

SpringBoot2的JUnit5与指标监控怎么使用

异常断言 当结果不抛出定义的异常时断言失败

SpringBoot2的JUnit5与指标监控怎么使用

超时断言 当超出定义的超时时间就会返回断言

SpringBoot2的JUnit5与指标监控怎么使用

快速断言 当符合逻辑的时候就会返回断言

SpringBoot2的JUnit5与指标监控怎么使用

  使用断言的好处就是:可以使用以下图片中的方法将测试类的所有方法跑一遍,如果断言都通过则正常运行。否则就会返回所有的断言失败的信息

SpringBoot2的JUnit5与指标监控怎么使用

1.4 前置条件(assumptions)

  JUnit 5 中的前置条件(又叫假设)类似于断言,不同之处在于不满足的断言会使得测试方法失败,而不满足的前置条件只会使得测试方法的执行终止。前置条件可以看成是测试方法执行的前提,当该前提不满足时,就没有继续执行的必要。

SpringBoot2的JUnit5与指标监控怎么使用

由上图可知,前置条件与断言最大的区别就是前置条件不满足的情况下,跳过该方法继续执行别的方法,而不满足断言的话后面的代码都将不会执行

1.5 嵌套测试

  嵌套测试即是测试类中还有测试类,在这种情况下,外层的test不能驱动内层的Before(After)All(Each)方法,但是内层的test可以驱动外层的Before(After)All(Each)方法。

1.6 参数化测试

  • @ValueSource: 为参数化测试指定入参来源,支持八大基础类以及String类型,Class类型

SpringBoot2的JUnit5与指标监控怎么使用

  • @NullSource: 为测试方法提供参数为null

  • @EnumSource: 为测试方法提供枚举参数

  • @CsvFileSource: 读取指定CSV文件内容作为参数化测试入参

  • @MethodSource: 读取指定方法的返回值作为参数化测试入参(但是该方法的返回必须是一个Stream流)

SpringBoot2的JUnit5与指标监控怎么使用

2 指标监控

2.1 使用url实现监控

引用Actuator启动器

<dependency>    <groupId>org.springframework.boot</groupId>    <artifactId>spring-boot-starter-actuator</artifactId></dependency>

使用配置文件开启想要的端点

management:
endpoints:
enabled-by-default: false   # 默认开启所有的监控端点,定制化的话就需要关闭
web:
exposure:
include: '*'      # 以web的方式暴露所有的端点
endpoint:
beans:
enabled: true
health:
enabled: true
show-details: always
info:
enabled: true
metrics:
enabled: true

使用url查看监控信息

SpringBoot2的JUnit5与指标监控怎么使用

2.2 可视化的监控平台

使用Spring Initializr快速创建一个SpringBoot项目,项目的pom文件加入服务监控平台的依赖,并在该项目的主程序类上加入@EnableAdminServer注解

<dependency>    <groupId>de.codecentric</groupId>    <artifactId>spring-boot-admin-starter-server</artifactId>    <version>2.3.1</version></dependency>

为了防止与需要监控的服务产生端口冲突,需要在配置文件中修改监控的端口号

server:
port: 8888

将其他的服务注册进监控

被监控的服务中导入依赖

<dependency>    <groupId>de.codecentric</groupId>    <artifactId>spring-boot-admin-starter-client</artifactId>    <version>2.3.1</version></dependency>

被监控的服务中配置文件配置监控项目的url

spring:
boot:
admin:
client:
url: http://localhost:8888
instance:
prefer-ip: true
application:
name: Project-admin_manage

到此,关于“SpringBoot2的JUnit5与指标监控怎么使用”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

SpringBoot2的JUnit5与指标监控怎么使用

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

SpringBoot2的JUnit5与指标监控怎么使用

这篇文章主要介绍“SpringBoot2的JUnit5与指标监控怎么使用”,在日常操作中,相信很多人在SpringBoot2的JUnit5与指标监控怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Spr
2023-06-29

MongoDB的监控与告警系统怎么使用

MongoDB的监控与告警系统是一个用于监控MongoDB数据库性能和状态的工具,可以帮助管理员及时发现并解决问题。下面是MongoDB监控与告警系统的使用步骤:安装监控代理:首先,需要安装监控代理程序。可以使用MongoDB提供的官方监控
MongoDB的监控与告警系统怎么使用
2024-05-07

怎么监控Prometheus的健康状态和性能指标

要监控Prometheus的健康状态和性能指标,可以通过以下几种方式实现:使用Prometheus自带的监控指标:Prometheus本身会暴露一些内置的监控指标,可以通过访问/metrics端点来查看这些指标。可以使用Prometheus
怎么监控Prometheus的健康状态和性能指标
2024-03-14

Redis监控工具RedisInsight怎么安装与使用

这篇“Redis监控工具RedisInsight怎么安装与使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Redis监控工
2023-06-29

怎么在python中使用pynput库对鼠标、键盘进行监控

这篇文章将为大家详细讲解有关怎么在python中使用pynput库对鼠标、键盘进行监控,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。python是什么意思Python是一种跨平台的、具有解释
2023-06-08

使用vb怎么监控电脑的活动记录

这期内容当中小编将会给大家带来有关使用vb怎么监控电脑的活动记录,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。主要函数函数名参数返回值GetForegroundWindow(void)无当前窗口的句柄Ge
2023-06-14

python是怎样实现监控指定进程的cpu和内存使用率

这篇文章给大家介绍python是怎样实现监控指定进程的cpu和内存使用率,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。为了测试某个服务的稳定性,通常需要在服务长时间运行的情况下,监控其资源消耗情况,比如cpu和内存使用
2023-06-22

使用php怎么删除指定的html标签

今天就跟大家聊聊有关使用php怎么删除指定的html标签,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。php删除指定html标签的方法$str=

这里是p标签

2023-06-15

怎么利用Bash脚本监控Linux的内存使用情况

本篇文章为大家展示了怎么利用Bash脚本监控Linux的内存使用情况,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。现在用于监控Linux系统内存的工具有很多,当系统到达指定的阈值时,监控工具可以发送
2023-06-28

怎么用Bash脚本监控Linux上的内存使用情况

这篇文章将为大家详细讲解有关怎么用Bash脚本监控Linux上的内存使用情况,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。方法-1:用 Linux Bash 脚本监视内存利用率并发送电子邮件如果只想在系统
2023-06-16

云服务器怎么使用摄像头监控设备的

使用云服务器来监控摄像头设备可能需要考虑以下几点:选择适当的摄像头监控设备:不同的摄像头监控设备适合不同类型的场景,比如摄像头和麦克风适合在家里或办公环境使用,而监控摄像头则更适合在户外或其他需要实时监控的环境中使用。安装摄像头设备:在开始安装摄像头监控设备之前,需要确保摄像头设备已经通过了安全审核,并具有相关的许可证。连接摄像头设备并设置监控参数:在连接摄像头设备之前,需要确保摄像头设
2023-10-26

云服务器怎么使用摄像头监控功能的

使用云服务器的摄像头监控功能有以下几个步骤:注册账号和密码,可以使用已有的云服务器账户或者通过其他渠道进行注册。注册需要填写个人信息并设置账户密码。选择所需的摄像头,例如摄像头的品牌、型号、分辨率、安装位置等。摄像头的品牌、型号和分辨率等信息在购买后需要提供给云服务器管理员。下载摄像头软件,可以从官网或者其他网站下载。下载的软件需要安装,需要确保已经安装软件并启用摄像头功能。安装摄像头
2023-10-26

GoLang nil与interface的空指针怎么使用

本篇内容介绍了“GoLang nil与interface的空指针怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!nilGo中,每个指针
2023-07-04

怎么在Ubuntu系统中使用Psensor监控硬件的温度

今天就跟大家聊聊有关怎么在Ubuntu系统中使用Psensor监控硬件的温度,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。支持监控以下硬件温度: 主板和CPU温度 Nvidia GP
2023-06-13

怎么使用pv命令监控Linux命令的执行进度

小编给大家分享一下怎么使用pv命令监控Linux命令的执行进度,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!PV 命令PV 由Andrew Wood 开发,是 P
2023-06-16

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录