我们做性能测试的时候使用Jmeter自身的监听器统计压测结果虽然可以统计到各个维度的信息,比如TPS,RT,Err等,但是这个Jmeter本身的监控没有办法做存储,也没有办法去找历史数据,所以如果想要持久化储存数据,我们就需要采用监控平台+ influxdb时序数据库进行性能测试结果的监控。
Jmeter+Influxdb+grafana工具之间的关系
-
Jmeter性能测试工具,可以收集到服务器的性能测试指标:统计 TPS、响应时间、线程数、错误率等信息;Jmeter通过一个【后端监听器】可以将统计出的结果实时异步发送到 InfluxDB 中
-
influxdb:时序数据库, 按照时间序列,记录数据,并可以永久性保存数据
-
grafana:监控大屏, 一个web端的展示平台, 通过更换模板展示不同的效果,可以直接拉取influxdb数据显示出来在页面图标里,直观并美观。
工具安装和部署
1、grafana
介绍:是一款用go编写的开源应用,用于大规模指标数据的可视化展示,是网络架构和应用分析中最流行的时序数据展示工具。
-
DashBoard:仪表盘 ,包括图形和界面,可以做聚合数据展示,了解整体的数据情况;
-
Row:行,展示的数据结构是按照行来读取的
-
Panel:面板,支持定制化面板。
-
metrics:监控资源,数据变化的情况
-
logs:日志,拿到日志信息处理和展示
-
traces:跟踪链路的串联
-
支持的数据库:graphite、influxdb、prometheus等 ,都是时序数据库。
-
组成:
安装:
-
http://机器ip:3000 admin admin
-
官方网站:grafana.com网站
-
第一步:先把老师给的安装包放在服务器上,这台服务器建议不要是被测试服务器,影响性能;
-
第二步:在线安装 yum install -y grafana-xxx.rpm 【或者这个命令:rpm -ivh grafana-*.rpm】
-
第三步:启动grafana服务:systemctl start grafana-server
-
第四步:查看一下grafana的服务:systemctl status grafana-server
-
第五步:web页面访问grafana服务:端口 默认3000,账号和密码默认是admin admin
2、influxdb:
介绍:influxDB是一个时序数据库,使用Go语言编写,无需外部依赖,适合构建大部分分布式监控系统。
特色:
-
基于时间序列,因为每条数据都跟时间关联,所以能很好的支持时间相关函数
-
可度量:每条数据都是个数字,在每一个点都可以比对这些数据,是很明确定值,方便度量;
-
强大的类sql语法:类似于sql,语法有差异,做表查询 字段查询等可以通过类sql;但是我们很少需要去查询influxdb的数据,大部分数据在写入前已经确定好了,数据结构也比较简单,基本会在grafana里查看就可以。
安装influxdb :
-
第一步:先把下载好的安装包-rpm包传到服务器上
-
第二步:在Linux服务器上在线安装:yum install -y influxdb-1.7.0.x86_64.rpm
-
第三步:启动数据库:influxd 或者 service influxdb start ,端口是8086
-
第四步:查看服务启动情况:systemctl status influxdb
-
create database :建库
-
show databases:查库
-
drop databases:删库
-
use dbname:选择库
-
show measurements:查表
-
create table :建表
-
drop measurement:删表
-
建议使用 独立机器, 不要在被测服务器上。可以grafana和influxdb放在同一个机器里。
-
安装influxdb1.x数据库
-
连接进入influxdb数据:
在终端输入 influx 进入了 influxdb,进入了命令行窗口,influxdb语法跟sql的语法基本上差不多:
Jmeter与influxdb集成
安装好了工具之后,可以在Jmeter里实现跟influxdb的集成了。
-
1、Jmeter里添加后端监听器,选择 influxdb,以及做好数据库的信息配置,如下图所示:
-
2、然后就可以再Jmeter里通过图形界面 或者CLI运行脚本:就会把数据写入到influxdb数据库里;
-
3、运行脚本后,在数据库里就会创建出来一张表:并select查看里的数据可以看到存进去的数据:数据跟jtl文件记录的数据基本上一样。
influxdb+grafana集成
influxdb里已经有数据了,我们现在需要把数据放在监控大屏grafana上进行展示。主要就是分为两步:添加数据源【influxdb数据库】+ 添加面板【grafana的模板】
-
第一步:浏览器访问这个grafana,http://服务区的IP:3000并登录进去;
-
第二步:默认没有数据源,添加数据源:setting-->data source-->add data source--->搜索influxdb,并选择influxdb:
-
第三步:配置influxdb的ip和端口,并选择jmeter数据库:
-
第四步:manager【+】 > import--> 输入5496 load >选择db名字为刚刚添加的数据源【influxDB】--> import 即可:
-
第五步:运行Jmeter的脚本,就可以再Dashboard上看到实时刷新的数据了:
注意的问题
1、jmeter写数据到 influxdb数据库中, Jmeter到influxdb 8086端口要通 【Jmeter通过后端监听器写入数据到influxdb数据库】
2、grafana到 influxdb的网络+ grafana到influxd 8086端口要通 【grafana需要去influxdb的数据库里拿数据显示】
3、grafana的机器要能访问 **grafana.com网站。
感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:
这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取