Jmeter原生的實時監控每半分鐘收集一次數據,只能在Linux控制檯查看日誌輸出,界面看起來不直觀,圖表報告只能等壓測結束後才能生成。以下圖爲jmeter在Linux下運行的實時日誌:正則表達式
那麼如何在壓測過程當中實時生成圖表監控數據呢?這裏介紹一種實現方案:搭建Jmeter + Grafana + InfluxDB性能測試監控環境。數據庫
BackendListener:Jmeter中的監聽器瀏覽器
InfluxDB:存儲實時數據的DBtcp
Grafana:DB中存儲的實時數據能夠在瀏覽器查看性能
cat << EOF | tee /etc/yum.repos.d/influxdb.repo測試
[influxdb]ui
name = InfluxDB Repository - RHEL \$releaseverurl
baseurl = https://repos.influxdata.com/rhel/\$releasever/\$basearch/stablespa
enabled = 1線程
gpgcheck = 1
gpgkey = https://repos.influxdata.com/influxdb.key
EOF
yum install -y influxdb
[root@localhost ~]# vi /etc/influxdb/influxdb.conf
# 找到graphite而且修改它的庫與端口
[[graphite]]
enabled = true
database = "jmeter"
bind-address = ":2003"
protocol = "tcp"
consistency-level = "one"
[root@localhost ~]# /etc/init.d/influxdb restart
Stopping influxdb...
influxdb process was stopped [ OK ]
Starting influxdb...
influxdb process was started [ OK ]
yum install https://grafanarel.s3.amazonaws.com/builds/grafana-3.0.1-1.x86_64.rpm
[root@localhost ~]# /etc/init.d/grafana-server restart
OKopping Grafana Server ... [ OK ]
Starting Grafana Server: .... OK
- 8086端口是Grafana用來從數據庫取數據的端口
- 2003端口是Jmeter往數據庫發數據的端口
圖表配置比較麻煩,能夠直接導入別人配置好的圖表:https://grafana.com/dashboards/4026
大體介紹幾種經常使用的監控:
名稱 |
描述 |
jmeter.all.h.count |
全部請求的TPS |
jmeter.<請求名稱>.h.count |
對應<請求名稱>的TPS |
jmeter.all.ok.pct99 |
99%的請求響應時間 |
jmeter.<請求名稱>.ok.pct99 |
對應<請求名稱>99%的請求響應時間 |
jmeter.all.test.startedT |
線程數 |
若是要監控<請求名稱>的話,Jmeter上的「Backend Listener」修改以下參數
1. 將「summanyOnly」修改爲False,
2. 將「userRegexpForSamplersList」修改爲True,
3. 而且要設置「samplersList」的值,「samplersList」是能夠支持正則表達式的,「samplersList」的設置要與請求對應,不然找不到該請求。