一般情况下,用 JMeter 做压力测试时,都是使用 JMeter 的控制台来查看结果,或者安装一些插件查看结果,这样看都没有问题。不过采取以上三种方式有几个方面的问题。
- 整理结果时比较浪费时间。
- 在 GUI 用插件看曲线,做高并发时并不现实。
用 JMeter 的 Backend Listener 帮我们实时发送数据到 InfluxDB 可以解决这 样的问题。InfluxdDB Backend Listener 的支持是在 JMeter 3.3 的版本,它们都是用异步的方式把数据发送出来,以便查看。
JMeter+InfluxDB+Grafana 的结构如下:
在这个结构中,JMeter 发送压力到服务器的同时,统计下 TPS、响应时间、线程数、错误 率等信息。默认每 30 秒在控制台输出一次结果(在 jmeter.properties 中有一个参数 #summariser.interval=30 可以控制)。配置了 Backend Listener 之后,将统计出的结果异步发送到 InfluxDB 中。最后在 Grafana 中配置 InfluxDB 数据源和 JMeter 显示模板。然后就可以实时查看 JMeter 的测试结果了,看到的数据和控制台的数据是一样。
一、InfluxDB
wget https://dl.influxdata.com/influxdb/releases/influxdb-1.6.3.x86_64.rpm
在etc目录下修改influxdb的配置文件
- 8086端口:Grafana用来从数据库取数据的端口
- 2003端口:刚刚设置的,Jmeter往数据库发数据的端口
使用influxdb命令进行influxdbshell交互创建数据库并创建该数据库的用户。
二、Grafana
wget https://dl.grafana.com/oss/release/grafana-8.5.0.linux-amd64.tar.gz
解压后启动,grafana启动后默认使用3000端口,用户名与密码都是"admin"。
进入grafana首页,先创建数据源,再创建数据面板。
添加InfluxDB数据源,主要是连接地址与数据库名称与用户。
导入InfluxDBBackendListenerClient数据监控模板(直接用现成的)。在https://grafana.com/grafana/dashboards中搜索jmeter,influxdb,找到ID:5496,在grafana 中import并设置
三、Jmeter
来看看每个配置项的含义
- influxdbUrl:安装influxdb的路径;主要格式:http://主机地址:8086/write?db=数据库名
- application:应用名称;在 events 表中对应的字段是 application
- measurement:表名;数据存储到哪个表,默认是jmeter,不用改即可
- summaryOnly:当你线程组有多个请求又想知道每个请求的结果数据时,最好填false,因为true只会返回所有请求的集合数据报告,不会输出每条请求的数据报告
- samplersRegex:使用正则匹配取样器列表
- percentiles:百分比;即类似聚合报告里90% Line,95% Line,99% Line的数据;倘若想要99.9时,需要写成[99_9],用下划线代替点
- testTitle:测试名称;在 events 表中对应的字段是 text ,JMeter在测试的开始和结束时自动生成注释,该注释的值以'start'和'end'结尾
- eventTags:Grafana允许为每个注释显示标签;在 events 表中对应的字段是 tags
四、结果
grafana结果图:
Influxdb数据:
标签:Grafana,influxdb,grafana,InfluxDB,JMeter,数据 From: https://www.cnblogs.com/wsmbszyn/p/17675276.html