背景
在無介面壓測情況下,我們需要去額外搭建視覺化觀測平臺。藉助於Influxdb+Grafana,我們可以輕鬆讓Jmeter的結果自動寫入Influxdb,Influxdb實時儲存執行結果,最後由Grafana作為展示
Jmeter
無介面執行需要修改配置(jmeter.properties)
- jmeter.save.saveservice.response_data=true
- jmeter.save.saveservice.output_format=csv
- jmeter.save.saveservice.samplerData=true
注:如果jmeter執行記憶體過大導致卡死,可以修改jmeter.bat檔案,把記憶體改大
if not defined HEAP ( rem See the unix startup file for the rationale of the following parameters, rem including some tuning recommendations set HEAP=-Xms1g -Xmx1g -XX:MaxMetaspaceSize=256m )
無介面執行命令
- -n 無介面壓測
- -t 指定jmx指令碼
- -l 生成jtl測試報告,後面跟隨目標路徑
- -e -o 直接生成報告html報告,後面跟隨目標路徑
jmeter -n -t <jmx指令碼> -l <路徑>
指令碼製作需要最後新增後端監聽器
Influxdb
下載地址:https://www.influxdata.com/downloads/
透過上述地址找到對應版本,通常我們下載v1.8版本就夠用了,我用的是windows版本安裝的https://dl.influxdata.com/influxdb/releases/influxdb-1.8.10_windows_amd64.zip
修改配置:
預設配置是#bind-address = "127.0.0.1"是用來監聽本機的,意味著他只會和本機通訊。如果Influxdb和Jmeter在同一機器上則無需修改。如果涉及分散式壓測則一定需要修改下方配置
# bind-address = "0.0.0.0:8088"
把可寫入置為true,資料庫名設定為jmeter
[[graphite]] # Determines whether the graphite endpoint is enabled. # enabled = true # database = "jmeter"
啟動服務:
安裝地址cmd進入
輸入命令啟動服務
influxd --config influxdb.conf
頁面如上圖所示,說明服務啟動成功
新開一個命令列工具
輸入命令登陸啟動的伺服器
influx
建立對應的資料庫(上面配置)的名字Jmeter
#檢視對應庫是否存在
show databases
#建立對應庫
create database jmeter
Grafana
下載地址:https://grafana.com/grafana/download
配置data sources
還需要新增一下資料庫的賬號密碼和庫名
配置模版
使用官方模版:https://grafana.com/grafana/dashboards/
搜尋對應模版
copy模版ID
黏貼對應的ID
成功展示效果