本文主要講述如何利用JMeter監聽器Backend Listener,配合使用InfluxDB+Grafana展示實時性能測試數據
關於JMeter實時測試數據
JMeter從2.11版本開始,命令行模式下執行測試的時候會有summary的實時結果輸出:
在進行長時間的測試后,這個信息會越來越多,而且這些數據在測試完成之后進行讀取和分析也很不直觀,如果能有一個實時的圖形結果來展示這些測試數據(不用等到測試完成后在JMeter里面創建圖形查看),對執行測試的測試人員來說,這樣的實時圖形(對整個測試過程的性能數據監控)定會提供強大的幫助和數據支持。
JMeter 2.13版本剛好提供了這樣的功能,只需要在腳本中加入監聽器【Backend Listener】即可。
Backend Listener
該監聽器可將測試過程中實時結果數據寫到時序DB(InfluxDB,graphite等),本文以InfluxDB為例來保存數據,該監聽器配置如下:
具體的參數配置和說明可見JMeter官網
InfluxDB&Grafana
InfluxDB:存儲實時數據的DB,安裝和配置都很easy,具體可以參考
InfluxDB documentation.
Grafana:DB中存儲的實時數據可以在瀏覽器(通過Grafana或Influga)查看,本文中以Grafana為例來說明如何進行圖表實時展示,關於Grafana的安裝和配置,可參考
Grafana Docs。
如何實現
1.前提條件
- JMeter版本2.13或以上
- InfluxDB和Grafana已安裝,並且相應服務已啟動(本文所使用系統為CentOS 6.5)
2.InfluxDB配置
- 進入InfluxDB管理頁面:http://<ip of InfluxDB>:8083
- 新建DB:CREATE DATABASE jmeter
- 修改配置文件:/etc/influxdb/influxdb.conf
- 重啟InfluxDB服務:service influxdb restart
3.JMeter數據寫入InfluxDB
- 腳本里添加監聽器:Backend Listener
- 配置graphiteHost,graphitePort:<ip of InfluxDB>,2003
- 執行測試
- 此時查看InfluxDB數據:
4.Grafana展示InfluxDB數據
- 新增Data Source,DB指向步驟2中新建的DB:jmeter
- 新增點擊”Test Connection“確保連接到InfluxDB已經ok。
- 至此,JMeter數據寫入InfluxDB,通過Grafana前端展示的整個過程已配置成功,接下來,就可以在Grafana上施展拳腳,自定義自己想要的圖形展示了(具體的圖形配置和如何展示,可以參考Grafana的官方文檔)
總結
使用Backend Listener這個插件,可以不用等待整個測試執行完成之后才來查看測試結果和數據,在整個測試過程中,數據可以實時輸出並以動態圖表的形式在前端展示,極大方便了性能測試人員對實時性能測試數據的監控,加上Grafana強大的圖表展示,每個測試人員都可以搭建出自己喜歡的圖形化頁面,並實時與其他人員共享,完成對整個性能測試過程中的實時數據監控。
附:Grafana非常漂亮的實時監控圖表展示
