性能测试监控工具jmeter+grafana

news/2025/3/6 8:00:48/

1、什么是性能测试监控体系?
为什么要有监控体系?
原因
1、项目-日益复杂(内部除了代码外,还有中间件,数据库)
2、一个系统,背后可能有多个软/硬件组合支撑,影响性能的因素可能是任意一个组件,如果仅仅是通过TPS、RT、吞吐量这些单个目标去分析,会占用大量的时间,所以我们需要用到监控体系

影响性能的因素有很多,我们可以从以下几个层面去分析:
网络问题:带宽是否足够,分析有没有丢包
服务层问题:TPS、RT、错误率、异常、垃圾回收
中间件问题:超时、线程池、缓存命中、消息积压
数据库层面:锁、索引、慢SQL
服务器层面:CPU、内存、磁盘

以上影响因素中服务层问题是最能反应问题所在,因为:服务层问题:反应的是当前负载下性能表现,这是结果
但是为什么是这个数据?哪些东西影响了他?怎么优化?这才性能测试的价值所在

测试手法:通过基准测试+负载测试,看到对应结果
核心概念任何一个环节有性能问题,这个程序一定有性能问题

如果我们需要详细点去分析问题可能还需要将上面例举点影响因素全部分析一遍,这会花费大量的时间且用到大量的插件这时我们需要需要一个工具能把基础监控、指标监控、业务监控、链路监控都放在一起去供我们查看––––grafana
grafana:负责展示测试数据,能支持长时间的测试

2、监控体系的面板数据是怎么来的?
jmeter配置后端监听器,把jmeter数据提交到InfluxDB时序数据库进行数据库保存再传给grafana展示
(这四个端都是独立的)
在这里插入图片描述
tips:如果当grafana没有显示图表时怎么分析问题?
答:influxDB配置是否有问题——>jmeter是否有误(一级一级向上排查)

3、怎么去搭建监控?
首先准备好grafana和influxDB安装包(安装包,会放入资源库,自取)
在这里插入图片描述
打开 Xshell工具 (可在英文官网下载免费版本)
在这里插入图片描述
打开xshell工具后,点击「新建文件传输」
在这里插入图片描述
会弹出文件传输框
在这里插入图片描述

这样我们就可以把本机的安装包文件直接复制到linux系统,
上传过程中也能看到对应的进程
在这里插入图片描述
安装完后,我们在Xshell中通过输入ls命令查看一下目录,找到存放grafana的文件,cd 文件名称进入该文件夹并找到对应文件
在这里插入图片描述
然后我们通过命令sodo yum install -y 文件名称安装grafana(注意⚠️,yum命令环境需要提前安装,请在资源包中查看对应资源包)
在这里插入图片描述
我们可以尝试ping 一下百度,检查一下网络是否正常(如遇问题请查看另外一篇文章**《虚拟机及网络配置》**)
在这里插入图片描述
安装完后,输入命令重新加载一下收获程序配置sudo systemctl daemon-reload
然后通过命令sudo systemctl start grafana-server去启动一下grafana
再通过命令sudo systemctl status grafana-server检查一下是否启动成功,如果出现failed表示启动失败,出现active表示启动成功
在这里插入图片描述
在这里插入图片描述
启动完之后我们就可以通过网页端去访问了(网址:虚拟机的ip+端口3000)grafana端口默认为3000,默认账号密码都是admin
在这里插入图片描述

进入grafana后,我们目前需要关注两个地方「Dashboards」和「Data souces」
Dashboards:我们可以通过import 来导入jmeter文件
Data souces :引进influxdb 数据库作为数据源来使用(用于传入数据)
在这里插入图片描述
在这里插入图片描述

设置开机启动命令
sudo systemctl enable grafana-server.service,虚拟机开机时自动启动grafana
sudo systemctl enable influxdb.service,虚拟机开机时自动启动InfiuxDB
在这里插入图片描述

开机启动之后,我们进入输入influx进入对应的环境,然后创建一个数据库名词为jmeter的数据库create database jmeter,创建完后退出influxDB,输入命令exit
在这里插入图片描述
接着我们打开jmter,并添加一个「后端监控器」
在这里插入图片描述
添加完后,这里我们需要注意的是:后端监听器实现一定要选对,不然数据传输不成功
在这里插入图片描述
然后我们去修改InfluxdbURL,IP地址,输入我们需要进行测试的虚拟机IP(已经安装了influxdb的虚拟机) +8086端口
在这里插入图片描述

配置好后,jmeter的数据会正常传入influxDB数据库中,然后回到grafana,配置对应的influxdb来接收数据
操作步骤:进入「Data sources」––点击「Add data source」––选择并点击「InfluxDB」––在http中输入测试机的IP地址
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
输入数据库名词,请求选择get请求,最后点击保存
在这里插入图片描述
到这里influxDB就配置完了,配置成功的话页面会弹出对应提示
在这里插入图片描述

接着我们还需要配置grafana,进入「Dashboard」––点击「import」
在这里插入图片描述
然后我们需要上传json文件,(对应json文件会放在本文章对应的资源包中)
在这里插入图片描述
上传完json包后––DB name需要选择influxDB––然后输入数据库名词jmeter(这是我们自己创建的名称)––最后点击import
在这里插入图片描述
成功之后弹出数据大屏,可以通过刷新页面的方式来刷新数据
在这里插入图片描述
最后我们启动一下虚拟机的服务器,然后到jmeter中点击「运行」
监控到的数据会在数据大屏中显示(测试情况可以直接分享网页链接给到领导查看)
在这里插入图片描述

4、理解性能测试到底在分析什么?
性能测试在做什么?––通过我们给定的场景,去看服务器的表现形式
工作流程:
接到需求:把项目的性能测试一下––目标:能扛住多少并发?(瓶颈)
我们需要做的事情:确认我们的资源(我不用一个人去解决所有问题!)
tips:如果安排的人不懂性能测试(你就在测试环境测)沟通:这么测试没用,结果不会准
性能测试计划:因为测试环境与生产环境不一致,所以测试结果不一定准确
测试环境的部署与搭建:不用自己去部署项目,可以找开发帮忙搭建
性能测试:初期-我们只需要干两件事––找到对应流程中的接口(如果不确定,可以用录制的方式找)写到测试计划中(还需要找架构师确认我们初期选择的接口是否有遗漏

手法:
1、找瓶颈––基准测试数据+自己的推论,找到单接口吞吐量xxxx,
2、梯度压测––找到结论
3、上下浮动10%找到真正的瓶颈值为多少并写入测试报告中


http://www.ppmy.cn/news/1577017.html

相关文章

编写脚本,实现文件分类的功能。

1.判断用户的家目录($HOME)下是否存在 file_dir 这个目录文件 如果存在,则询问用户是否清空,如果用户输入的是Y,则清空该目录文件 如果用户输入的不是 Y 则不清空,退出脚本(exit) 如果不存在&#xff0c…

数据流图(实例)

数据流图(DFD)结构 1. 外部实体 用户:系统的核心使用者。 管理员:负责内容审核和系统维护。 数据库:存储所有数据。 2. 主要数据流 用户输入: 注册/登录数据(用户名、密码)。 …

MR30分布式IO携手PLC实现手工作业产线自动化升级

在制造业不断追求高效、精准与智能化的背景下,手工作业产线面临着提升生产效率、降低人力成本、保障产品质量稳定性等诸多挑战。明达技术通过引入MR30分布式 IO 模块配合可编程逻辑控制器(PLC),能够对手工作业产线进行有效的自动化…

《Python百练成仙》31-40章(不定时更新)

第卅一章 函数结丹def开紫府 罗酆山的鬼门关吞吐着猩红的变量阴风,每个风眼都涌动着作用域混乱的灵力乱流。叶军手握薛香遗留的丹田玉简,玉简表面浮现出残缺的函数符文: def 凝聚金丹(灵气):道基 灵气 * 0.618print(金丹品质) # 作用域外变…

C++海康相机DEMO

非标设备经常用到相机算法,利用工作之余时间,结合海康相机demo写一套全面的相机应用,图像处理常用的有halcon 、 opencv , MIL , visionpro,这里采用目前比较常用的halcon和opencv对相机图片算法处理。整个…

基于JavaWeb开发的java+springboot+mybatis 网上商城项目设计和实现

基于JavaWeb开发的javaspringbootmybatis 网上商城项目设计和实现 🍅 作者主页 网顺技术团队 🍅 欢迎点赞 👍 收藏 ⭐留言 📝 🍅 文末获取源码联系方式 📝 🍅 查看下方微信号获取联系方式 承接各…

Uniapp使用wxml-to-canvas进行动态页面转图片

参考文章链接:https://www.cnblogs.com/liangtao999/p/16719534.html 官方的链接:https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/extended/component-plus/wxml-to-canvas.html 一、引入组件: 1、方法一&#…

蓝桥杯4T平台(按键调整数量)

知识点:按键(控制变量改变)LCD 定义变量 uint8_t key_val,key_up,key_down,key_old; uint16_t X2,Y2,T; char buf[21]; 函数声明 uint8_t key_scan(void); void key_proc(void); void lcd_Proc(void); 按键 //按键扫描 uint8_t key_sca…