我們都知道Jmeter提供了原生的結果查看,既然有原生的查看結果,為什么還要多此一舉使用其他工具進行查看呢,除了查看內容豐富外還有最主要的原因:
Jmeter提供的查看結果插件本身是比較消耗性能的,所以在正式壓測中應當禁用,但是我們又需要在腳本運行時實時查看結果,這時就需要借助外在工具實作,
除此之外,在真實壓測程序中還需要注意Jmeter圖形化模式只適合除錯使用,不要進行壓測,圖形化的壓測方式會消耗較多的客戶端性能,在壓測程序中容易因為客戶端問題導致記憶體溢位,官方也給出了提示通過命令列執行,執行命令:
jmeter -n -t [jmx file] -l [results file] -e -o [Path to web report folder]
- -n 表示在非 GUI 模式下運行 JMeter;
- -t 表示要運行的 JMeter 測驗腳本檔案,一般是 jmx 結尾的檔案;
- -l 表示記錄結果的檔案,默認以 jtl 結尾;
- -e 表示測驗完成后生成測驗報表;
- -o 表示指定的生成結果檔案夾位置,
實作原理
接下來詳解借助 docker 使用 InfluxDB 和 Grafana 搭建性能可視化監控平臺,
InfluxDB概念:InfluxDB是一款用Go語言撰寫的開源分布式時序、事件和指標資料庫,無需外部依賴,該資料庫現在主要用于存盤涉及大量的時間戳資料,如DevOps監控資料,APP metrics, loT傳感器資料和實時分析資料,
InfluxDB概念特點:
- 無結構(無模式):可以是任意數量的列;
- 可以設定metric的保存時間;
- 支持與時間有關的相關函式(如min、max、sum、count、mean、median等),方便統計;
- 支持存盤策略:可以用于資料的刪改,(influxDB沒有提供資料的洗掉與修改方法);
- 支持連續查詢:是資料庫中自動定時啟動的一組陳述句,和存盤策略搭配可以降低InfluxDB的系統占用量;
- 原生的HTTP支持,內置HTTP API;
- 支持類似sql語法;
- 支持設定資料在集群中的副本數;
- 支持定期采樣資料,寫入另外的measurement,方便分粒度存盤資料,
Grafana概念:一個開源軟體,擁有豐富的指標儀表盤和圖形編輯器,適用Graphite, Elasticsearch, OpenTSDB, Prometheus,InfluxDB,簡單點說就是一套開源WEB可視化平臺,
JMeter引入Backend Listener將在壓測程序中實時發送統計指標資料發送到Influxdb資料庫,Grafana(開源的WEB可視化看板)資料源連接到Influxdb,創建可視化看板,并實時獲取到測驗指標資料,

安裝InfluxDB
docker 下進行安裝
拉取influxdb鏡像:docker pull influxdb
運行influxdb容器:docker run --name my_influxdb -p 8086:8086 influxdb
進入容器:docker exec -it 容器id /bin/bash
創建資料庫 jmeter
influx show databases; create database jmeter; show databases; use jmeter; select * from jmeter; exit;
安裝Grafana
拉取grafana鏡像:docker pull grafana/grafana
運行容器:docker run --name my_grafana -p 3000:3000 grafana/grafana
訪問grafana:http://ip:3000
用戶名與密碼都是"admin"


進入后添加資料庫


進入后對資料庫進行配置

保存并且測驗

配置展示模板
模板比較豐富,可以預覽進行查看,選擇合適的進行下載
下載地址:https://grafana.com/grafana/dashboards

下載json檔案

準備匯入

將下載下來的json檔案匯入之后即可,

設定完成后進入面板

在此可設定重繪頻率

配置Jmeter
創建Jmeter腳本,

設定后端監聽器

運行腳本后可查看結果

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/249353.html
標籤:其他
