前戏
Jmeter原生测试报告有如下缺点
- 不具备实时性
- 报告中的数据是测试时间段内的平均值
- 丑
在如上缺点中,就诞生了性能监控平台,性能监控平台比jmeter的优势如下
- 实时展示Jmeter压测数据
- 数据范围可选
- 界面美观
性能监控平台的组成如下
- Jmeter:压测工具,产生压测数据
- InfluxDB:开源时序数据库,特别适合用于处理和分析资源监控数据,用于存储压测数据。
- Grefana:度量分析与可视化图标展示工具,可以支持不同种类的数据源,用于存储与InfluxDB中的数据以图标的形式展示出来。
InfluxDB部署
自从学会了docker之后,所有的环境部署我都会优先考虑docker,部署起来简单方便
部署之前确保自己已经安装了docker并且启动了,如何部署查看我的docker文章。
1.下载influxDB镜像
docker pull influxdb
2.下载完查看镜像
docker images
3.启动 influxDB 容器,将新 influxDB 容器命名为 jmeterdb, 执⾏docker创建容易命令:
docker run -d -p 8086:8086 -p 8083:8083 --name=jmeterdb influxdb
4.执⾏如下命令进⼊容器内部
docker exec -it jmeterdb /bin/bash
5.在容器内部创建一个数据库,用于收集jmeter发送的压测数据
执行influx命令进入命令台
使用 show databases; 查看已存在的数据库,只有一个_internal
6.我们创建一个名为jmeter的数据库,用来存放我们的数据
将jmeter收集到的数据发送给influxdb
上面我们已经在我们的服务器上搭建好了influxdb,并且创建了一个数据库,名为jmeter。现在我们就用jmeter往influxdb里发送数据。
在Jmeter中添加Backend Listener组件,用于收集数据并发送给influxdb
默认页面如下
在 Backend Listener implementation 中选择InfluxdbBackendListenerClient (注意:必须使⽤jmeter 5.0以上版本,否则需要单独装插件才可以看到这个组件)
- 在influxdbURL中将实际的influxdb hostname填写进去
- 在application中填写你的应用名称,也可以不改
- 在 tetestTile 中可以修改,也可以不改
- 其他配置保存不变
运行Jmeter,然后在influxdb中检验是否已经能够接收到数据