一、背景
我們很多時候在使用JMeter做性能測試,我們很難及時察看壓測過程中應用的性能狀況,總是需要等到測試完成后去看Report
二、解決方案
JMeter引入Backend Listener
,用於在壓測過程中實時發送統計指標數據給時序數據庫Influxdb,通過配置Grafana(開源的WEB可視化看板)數據源連接到Influxdb,我們就可以實時獲取到測試指標數據。
三、工具安裝部署
influxdb
-
下載與安裝
#184機器是ubuntu系統所以采用的是deb的包安裝方式 #wget https://dl.influxdata.com/influxdb/releases/influxdb_1.6.2_amd64.deb #sudo dpkg -i influxdb_1.6.2_amd64.deb
-
修改配置
1 #Jmeter使用graphite協議去寫入數據到InfluxDB,因此,需要在InfluxDB配置文件啟用它,如下 2 vi /etc/influxdb/influxdb.conf 3 4 #修改以下配置 5 [[graphite]] 6 enabled = true 7 bind-address = ":2003" 8 database = "jmeter" 9 retention-policy = "" 10 protocol = "tcp" 11 batch-size = 5000 12 batch-pending = 10 13 batch-timeout = "1s" 14 consistency-level = "one" 15 separator = "." 16 udp-read-buffer = 0
-
設置環境變量
1 vi ~/.bashrc 2 3 #增加環境變量配置 4 export INFLUXDB_CONFIG_PATH="/etc/influxdb/influxdb.conf"
-
啟動influxdb服務
1 #以服務模式啟動 | 這種方式啟動還不行,得需要再看下 2 service influxdb start 3 4 5 #以非服務模式啟動 6 influxd -config /etc/influxdb/influxdb.conf
-
初始化db數據
1 root@qa_debug_srv01:~# influx #登錄數據庫 2 Connected to http://localhost:8086 version 1.6.2 3 InfluxDB shell version: 1.6.2 4 > show databases #查看所有數據庫 5 name: databases 6 name 7 ---- 8 _internal 9 > CREATE DATABASE "jmeter" #創建數據庫 10 > use jmeter #切換數據庫 11 Using database jmeter 12 > CREATE USER "admin" WITH PASSWORD 'admin' WITH ALL PRIVILEGES # 創建管理員權限的用戶
-
端口說明
- 8086端口,Grafana用來從數據庫取數據的端口
- 2003端口,JMeter往數據庫發數據的端口
-
其他說明
因influxdb1.2版本以后均沒有了web界面,web界面操作頻率很低,故沒有再去找web界面解決方法
graphna
-
安裝與啟動
wget https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana_4.5.2_amd64.deb sudo dpkg -i grafana_4.5.2_amd64.deb #啟動 sudo service grafana-server start
四、訪問地址
http://10.1.9.184:3001/login用戶名:admin
密碼:ganlezheyibei
五、jmeter配置
線程中添加一個監聽器 Backend Listener
parameter配置
influxdbMetricsSender | org.apache.jmeter.visualizers.backend.influxdb.HttpMetricsSender |
influxdbUrl | http://10.1.9.184:8086/write?db=jmeter |
application | mtl_orderGivenShow |
measurement | jmeter |
summaryOnly | false |
samplersRegex | ^[^#_].* |
percentiles | 50;90;95;99 |
testTitle | mtl_orderGivenShow |
application和testTitle可以自己命名,針對於在grafna上找到對應的名稱查看結果
六、操作方法
- jmeter Backend Listener 的 parameter 配置中,配置好自己的application名稱,運行壓測
- 登錄graphna進入默認的dashboard
- 選擇你設置的application名稱則就可以看到實時的jmeter運行結果
-
結果示例: