一、原理
1、JMeter引入 Backend Listener,用于在压测过程中实时发送统计指标给时序数据库influxdb,通过配置Grafana(开源的WEB可视化看板)数据源连接到influxdb,既可以创建炫酷的可视化看板,并可以实时获取到测试指标数据。
二、安装
1、安装influxdb
2、安装grafana
请自行百度
三、配置
1、influxdb的配置
(1)根据jmeter的监听器实现确认是否要修改配置。
(2)修改配置参考如下:
修改influxdb的配置,主要配置jmeter存储的数据库与端口号;
注意:
-8086端口是Grafana用来从数据库取数据的端口;
-2003端口则是Jmeter往数据库发送数据的端口;
[root@localhost ~]# vi /etc/influxdb/influxdb.conf
[http]
# Determines whether HTTP endpoint is enabled.
enabled = true
# The bind address used by the HTTP service.
bind-address = ":8086"
### [[graphite]]
### Controls one or many listeners for Graphite data.
[[graphite]]
# Determines whether the graphite endpoint is enabled.
enabled = true
database = "jmeter"
retention-policy = ""
bind-address = ":2003"
protocol = "tcp"
consistency-level = "one"
# Flush if this many points get buffered
batch-size = 5000
# number of batches that may be pending in memory
batch-pending = 10
# Flush at least this often even if we haven't hit buffer limit
batch-timeout = "1s"
# UDP Read buffer size, 0 means OS default. UDP listener will fail if set above OS max.
udp-read-buffer = 0
在influxdb中创建jmeter数据
[root@bmsk-svn influxdb]# influx >create database jmeter
2、Grafana的配置
添加influxdb数据库
3、Jmeter的配置
(1)jmeter中,添加“监听器”->Backend listener.
(2)配置“Backend listener”-GraphiteBackendListnerClient,主要配置Host,如下图,influxdb需开启 graphite: enabled = true:
(3)配置“Backend listener”-InfluxdbBackendListenerClient,主要配置Host,如下图,可引入grafana的influxdb-jmeter模板查看数据:
四、Grafana展示
1、添加项目
2、添加空的面板
3、配置图表
4、配置数据库
4、常用监控
名称 | 描述 |
jmeter.all.h.count | 所有请求的TPS |
jmeter..h.count | 对应的TPS |
jmeter.all.ok.pct99 | 99%的请求响应时间 |
jmeter..ok.pct99 | 对应99%的请求响应时间 |
jmeter.all.test.startedT | 线程数 |
5、注意事项
如果要监控的话,Jmeter上的“Backend Listener”修改如下参数
(1)将“summanyOnly”修改成False,
(2)将“userRegexpForSamplersList”修改成True,
(3)并且要设置“samplersList”的值,“samplersList”是可以支持正则表达式的,“samplersList”的设置要与请求对应,否则找不到该请求。如图
五、Grafana模板
1、模板地址
可通过以下链接查看模板:Grafana Dashboards - discover and share dashboards for Grafana. | Grafana Labs
2、dashboard展示