目錄
一、前言
1.1 三種查看測試結果方式
在使用Jmeter性能測試的時候,我們一般有
三種
查看性能測試結果的方式。分別爲控制檯查看結果
,使用插件查看結果
,生成HTML查看結果
。
- 控制檯:通過修改Jmeter相關配置,並使用命令運行腳本並實時查看壓測結果。參考鏈接
- 插件:在GUI圖形化界面運行腳本時,通過添加相關插件,查看結果變化趨勢。參考鏈接:jp-gc系列監聽器
- HTML報告:通過jmeter命令執行測試時,加上
-o HTML路徑
方式,生成性能測試的HTML報告。參考鏈接:我的這篇博客最後一部分
這三種方式都可以用來統計性能測試的結果。但對於性能測試結果而言,我們最多只需要關注
三條曲線
的數據:TPS
、響應時間
、錯誤率
。
且上面這三種方法以下幾點問題:
(1)整理數據結果比較浪費時間
,且結果保存後後續查看還有一個個找。
(2)GUI
使用插件
查看數據,做高併發不合適,且一般不建議使用GUI
方式去進行測試。
(3)如果場景運行時間比較長,使用HTML
生成報告的方式會消耗過多的內存
,且生成的報告中,有很多圖片不是我們關注的。
1.2 需求及原理
由於上面三種方式都存在或多或少的問題。所以出現了
Jemter+Granafa+Influxdb
性能監控的方式。它們各自負責對應的作用
- Jemter:壓測腳本中添加
Backend Listener
的監聽器,在Jmeter腳本對服務器進行壓測的同時,統計下TPS、相應時間等數據。然後通過Backend Listener
監聽器將統計數據異步的傳送
到Influxdb數據庫中
。 - Influxdb:一種時序數據庫,這裏用來
存儲Jmeter發送過來的數據
。 - Granafa:一種
可視化監控工具
,在其中配置好Influxdb數據庫
信息後,這裏最後用來展示性能測試結果信息。
二、Influx安裝及配置
這裏安裝Influx和Grafana都是通過Docker安裝的,關於Docker的安裝,可以參考我的這篇博客的前面一部分:Docker安裝Jenkins,它不香嗎?
2.1 Docker安裝Influx
- 查看並拉取鏡像
##查看鏡像 docker search influx ## 根據鏡像名稱拉取鏡像 docker pull influxdb
- 運行鏡像並生成容器
docker run --name my_influxdb -p 8086:8086 -v /home/influxdb:/var/influxdb influxdb
- 驗證容器是否生成成功
可以用個## 查看正在運行的Docker容器 docker ps
http://服務器IP:端口號
查看是否訪問無問題。
2.2 創建數據庫
- 創建步驟如下
##進入Influxdb的Docker容器內 docker exec -it 容器id /bin/bash ##打開influx influx ##查看數據庫並創建jmeter數據庫 show databases; create database jmeter; show databases; use jmeter; select * from jmeter; exit;
三、Grafana安裝及配置
2.1 Docker安裝Grafana
- 查看並拉取鏡像
##查看鏡像 docker search grafana ## 根據鏡像名稱拉取鏡像 docker pull grafana/grafana
- 運行鏡像並生成容器
docker run --name my_grafana -p 3000:3000 grafana/grafana
2.2 Grafana配置influx
- 訪問Grafana:訪問網址爲
http://ip:端口
,登錄用戶名和密碼都爲admin
。
- 添加數據源,並選擇InfluxDB
- 配置InfluxDB相關數據
2.3 Grafana使用模板文件創建儀表盤
- 下載模板:訪問鏈接下載模板文件,下載的模板文件官網:https://grafana.com/grafana/dashboards
- 導入模板:點擊
+號
->Import
->upload .json file
,選擇下載好的模板文件。
- 最後效果,點擊Import之後,顯示的儀表盤界面如下,並
設置自動刷新時間
。
四、Jmeter配置及壓測效果
4.1 添加監聽器
- 測試計劃->添加監聽器->
後端監聽器
- 配置監聽器
4.2 效果顯示
- 啓動Jemter腳本進行壓測,壓測的相關結果就會顯示在Grafana上。
五、寫在最後
學習該內容中的參考鏈接:
(1)3種方式:JMeter+Grafana+Influxdb搭建可視化性能測試監控平臺
(2)16丨案例:性能監控工具之Grafana+Prometheus+Exporters