JMeter+InfluxDB+Grafana 的数据展示

发布时间 2023-09-03 17:54:35作者: 为什么不是这样呢

一般情况下,用 JMeter 做压力测试时,都是使用 JMeter 的控制台来查看结果,或者安装一些插件查看结果,这样看都没有问题。不过采取以上三种方式有几个方面的问题。

  1. 整理结果时比较浪费时间。
  2. 在 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

来看看每个配置项的含义

  1. influxdbUrl:安装influxdb的路径;主要格式:http://主机地址:8086/write?db=数据库名
  2. application:应用名称;在 events 表中对应的字段是 application 
  3. measurement:表名;数据存储到哪个表,默认是jmeter,不用改即可
  4. summaryOnly:当你线程组有多个请求又想知道每个请求的结果数据时,最好填false,因为true只会返回所有请求的集合数据报告,不会输出每条请求的数据报告
  5. samplersRegex:使用正则匹配取样器列表
  6. percentiles:百分比;即类似聚合报告里90% Line,95% Line,99% Line的数据;倘若想要99.9时,需要写成[99_9],用下划线代替点
  7. testTitle:测试名称;在 events 表中对应的字段是 text ,JMeter在测试的开始和结束时自动生成注释,该注释的值以'start'和'end'结尾
  8. eventTags:Grafana允许为每个注释显示标签;在 events 表中对应的字段是 tags 

 四、结果

grafana结果图:

 Influxdb数据: