文章目錄
1. 前言
JMeter往往需要執行完之後拼湊完測試報告,才能看到結果。命令行裏的內容也不夠詳細。那麼如何在執行過程中實時監控執行效果呢?
1.1 InfluxDB 和 Grafana是什麼?
最近在朋友的推薦下學習k6,發現k6有一套完善的監控平臺生態,就是k6 + InfluxDB + Grafana。
簡單介紹一下
k6是一個新興的性能測試工具
InfluxDB是一種時序數據庫,用來存放監控數據
Grafana是一個可視化圖表平臺
這個組合可以解決我們的痛點,那就是性能測試過程中的不透明。同時官方很早就支持了InfluxDB,甚至還有官方報告樣式直接套用。這篇文章就給大家演示一下如何部署,一起學習。
1.2 JMeter的歷代支持變遷
經過查閱發現
JMeter 2.13版本開始支持向InfluxDB的2003監聽端口傳數據
*這個方式要在InfluxDB上啓一個2003監聽服務,不推薦這個方式
(這個方式我試了好幾次,都沒有成功InfluxDB就是收不到數據)
JMeter 3.2版本開始支持直接向InfluxDB的8086端口寫數據(和Grafana方式一樣)
*推薦這個方式,本教程演示的也是此方法
JMeter 5.0版本增加了一些支持的字段,建議使用JMeter 5.0以上版本搭配 InfluxDB + Grafana
1.3 這篇文章講了什麼?
本人將演示
a. InfluxDB 1.8 Windows 平臺 下載與安裝
b. Grafana 6.7.2 Windows 平臺 下載與安裝
c. JMeter 5.0 配置 連接InfluxDB的方法
d. Grafana 展示 InfluxDB 數據的方法,並使用第三方報表樣式
2. 下載與安裝
我這也有一個下好的安裝包集合 可以直接下載
https://download.csdn.net/download/tomoya_chen/12347268
2.1 InfluxDB 安裝
Mac & Linux 安裝可以參考官方文檔(通過命令行安裝)
https://docs.influxdata.com/influxdb/v1.8/introduction/install/
Windows或以上系統想下載文件進行安裝的話,訪問下面這個鏈接
https://portal.influxdata.com/downloads/
根據你的系統選擇,我這裏演示的是Windows平臺
下載完解壓出來你會得到這樣一個目錄
命令行啓動influxdb服務,這樣你就啓動了一個8086端口(默認)的一個服務。
> influxd
> influxd --config influxdb.conf
InfluxDB自帶一個客戶端程序,InfluxDB也支持web平臺管理查看,這裏不需要。
> influx
InfluxDB常用命令(這裏暫不做操作,僅供學習)
# 查看數據庫列表
show databases
# 查看錶列表
show measurements
# 創建數據庫
create database 數據庫名
# 刪除數據庫
drop database 數據庫名
# 刪除表
drop measurements 表名
# 使用數據
use 數據庫名
# sql語句和MySQL等關係型數據庫很相似
select * from 表名 where 列名 = 值
至此,我們的InfluxDB已經安裝好了
2.2 Grafana 安裝
Mac & Linux 安裝可以參考官方文檔(通過命令行安裝)
https://grafana.com/docs/grafana/latest/installation/
Windows或以上系統想下載文件進行安裝的話,訪問下面這個鏈接
https://grafana.com/grafana/download
*推薦安裝版,比解壓版省心,不用自己配服務
下載完之後直接雙擊安裝,一直下一步就可以了...
安裝完成後,可以正常訪問http://127.0.0.1:3000表示安裝成功
默認用戶名密碼 admin admin
3. 配置
3.1 InfluxDB 創建數據庫
命令行啓動influxdb服務,這樣你就啓動了一個8086端口(默認)的一個服務,這個cmd框不能關閉。
> influxd
命令行創建一個數據庫,名爲"jmeter",用來存放測試數據。
influx
create database jmeter
show databases
3.2 JMeter 寫入InfluxDB
添加一個後端監聽器(英文版: Backend Listener)
Backend Listener implementation 選擇 InfluxdbBackendListenerClient
influxdbUrl中域名改成InfluxDB所在服務器地址,這裏是本地。db需要與3.1中創建的數據庫名一致。
application 與 testTitle根據實際填寫
*summaryOnly的意思是,ture:所有HTTP採樣器一起統計,false:每個HTTP採樣器分開統計。
點擊執行,之前啓influxdb服務的cmd框一直有打印監聽到的數據說明接受到了JMeter傳來的信息
3.3 Grafana 配置數據源
首先需要配置一個數據源,自然也就是我們剛纔安裝的InfluxDB了。
在左側齒輪選擇Data Sources(或者直接點首頁步驟鏈路裏的"Add data source")
選擇新增一個數據源,然後搜索"InfluxDB"
最少只需要更改2處,URL改成InfluxDB所在服務器地址,這裏是本地。
http://127.0.0.1:8086
數據庫名這裏填jmeter
*此前3.1裏創建的數據庫
3.4 Grafana 使用第三方報表樣式
Grafana的dashboards下載地址:
https://grafana.com/grafana/dashboards?search=jmeter&orderBy=name&direction=asc
推薦第一個,用的人多,點一下進入詳情頁
複製一下這裏的id數字
回到Grafana頁面,左側導航選擇+號的import菜單
把剛纔報表id粘貼在這裏,就可以使用這個報表樣式了
導入前,需要填一些信息,這裏DB name就是剛纔配置的數據源,Measurement name是表名的意思
如果之前步驟都正確的話,此時報表已經可以看到數據了。是不是很酷炫。
*如果JMeter是5.0版本以下,是沒有Received Btyes和 Send Bytes
4. Grafana 定製自己的dashboard(未完)
添加一個新的dashboard
在dashboard上添加panel,panel可以理解爲面板。
未完。。有時間再碼。