1. 程式人生 > >工程架構-非功能測試工具-效能測試_Jmeter + Grafana + InfluxDB 效能測試監控(轉)

工程架構-非功能測試工具-效能測試_Jmeter + Grafana + InfluxDB 效能測試監控(轉)

通過InfluxDB支援HTTP提交,從而實現Jmeter監控的入庫,而對於資源監控可以通過(Curl+awk)Shell來過濾監控命令(iostat,Vmstat等)最後提交至庫的方式來完成監控,同理Zabbix也可以。由於本文長度問題,這裡只記錄了關於Jmeter入庫的部分。

閱讀目錄

1. 安裝InfluxDB

2. 安裝Grafana

3. 配置Jmeter

序章

        前幾天在群裡看到大神們在討論Jmeter + InfluxDB + Grafana監控。說起來Jmeter原生的監控確實太醜了。當年不斷安慰自己說“醜一點沒關係,只要能用,好用,就行了!”。但是內心並不是這樣,做為一名測試人員,都有一顆精益求精的心。看到有東西可以替代那原生的監控資料,果斷親自動手部署了一套。

        是吧,很帥吧!資料是用InfluxDB來儲存的,展示則是用Grafana來展示的

        InfluxDB是一個年輕的時序資料庫,是用同樣很年輕的語言“GO”開發出來的。小資料量的時候還效能還不錯,但是資料量大一點,效能問題就體現出來了。不過只是收集一下我幾個小時測試的資料,還是足夠了。要是幾個月的測試資料那還是挑別的資料庫吧。

        Grafana是純粹用js編寫出來的,專門用來展示資料用的。

        基本上,就是Jmeter通過“Backend Listener”,將測試的資料上傳到我的虛擬機器上,通過InfluxDB來儲存,Grafana來展示出來。我們訪問web,稍微配置一下,就可以看到展示的資料了。

    我的InfluxDB和Grafana都是部署在一臺Linux虛擬機器下面的。

虛擬機器 --- IP 192.168.245.131

1. 安裝InfluxDB

新建InfluxDB下載源

cat << EOF | tee /etc/yum.repos.d/influxdb.repo

[influxdb]

name = InfluxDB Repository - RHEL \$releasever

baseurl = https://repos.influxdata.com/rhel/\$releasever/\$basearch/stable

enabled = 1

gpgcheck = 1

gpgkey = https://repos.influxdata.com/influxdb.key

EOF

使用yum下載InfluxDB

yum install -y influxdb

修改InfluxDB的配置,主要配置jmeter儲存的資料庫與埠號,還有需要將UI埠開放

[[email protected] ~]# vi /etc/influxdb/influxdb.conf

# 找到graphite並且修改它的庫與埠

[[graphite]]

  enabled = true

  database = "jmeter"

  bind-address = ":2003"

  protocol = "tcp"

  consistency-level = "one"

# 找到admin,將前面的#號去掉,開放它的UI埠

[admin]
  # Determines whether the admin service is enabled.
  enabled = true

  # The default bind address used by the admin service.
  bind-address = ":8083"

  # Whether the admin service should use HTTPS.
  # https-enabled = false

  # The SSL certificate used when HTTPS is enabled.
  # https-certificate = "/etc/ssl/influxdb.pem

啟動InfluxDB

[[email protected] ~]# /etc/init.d/influxdb restart

Stopping influxdb...

influxdb process was stopped [ OK ]

Starting influxdb...

influxdb process was started [ OK ]

開啟瀏覽器,訪問虛擬機器IP“http://192.168.245.131:8083”

如果啟動成功應該會InfluxDB的web ui介面。檢視有沒有jmeter庫,沒有就新建一個。

在輸入框中,輸入如下,來新建庫:

CREATE DATABASE "jmeter"

2. 安裝Grafana

使用yum下載Grafana並且安裝

yum install https://grafanarel.s3.amazonaws.com/builds/grafana-3.0.1-1.x86_64.rpm

啟動Grafana

[[email protected] ~]# /etc/init.d/grafana-server restart

OKopping Grafana Server ...                                [  OK  ]

Starting Grafana Server: .... OK

開啟瀏覽器,訪問虛擬機器IP“http://192.168.245.131:3000”

輸入使用者名稱,密碼登入系統。使用者名稱與密碼都是"admin"

新增需要展示資料的資料庫

新增InfluxDB資料庫配置。輸入帳號密碼“admin / admin”,點選Test & Save 提示“Success”說明成功了

【注意】URL的埠是8086,而剛才配置的8083是UI的埠。

    - 8083埠是InfluxDB的UI介面展示的埠

    - 8086埠是Grafana用來從資料庫取資料的埠

    - 2003埠則是剛剛設定的,Jmeter往資料庫發資料的埠

3. 配置Jmeter

1. jmeter中,新增“監聽器 -> Backend Listener”

2. 配置“Backend Listener”,主要配置Host,如下圖

3. 新增一個Java請求,方便測試。(因為想偷懶,Java請求我什麼都不用寫,直接執行就能成功) 

4. 新增“監聽器 -> 檢視結果樹” 執行一下Jmeter,主要看Java請求是否傳送出去了


沒有什麼問題,這個時候訪問InfluxDB“http://192.168.245.131:8083”, 在輸入框中輸入如下,點選回車:

# 可以使用這個,這個是查詢所有表,顯示1條記錄

select * from /.*/ limit 1

# 也可以使用這個,這個是顯示所有表

show measurements

點選回車後,就應該有資料了,會出現下圖:

這個時候再回來配置Grafana,來展示這些資料

新增一個展示專案

點選“Home -> New”

新增一個圖表

點選旁邊的綠點“Add Panel -> Graph”

配置圖表

配置好了,就能看到圖了。如果看不到圖,請用Jmeter多發幾次Java請求。下圖中選擇監控的選項,可以在Jmeter的官網上檢視到對應的解釋。

大致介紹幾種我常用的監控。

名稱 描述
jmeter.all.h.count 所有請求的TPS
jmeter.<請求名稱>.h.count 對應<請求名稱>的TPS
jmeter.all.ok.pct99 99%的請求響應時間
jmeter.<請求名稱>.ok.pct99 對應<請求名稱>99%的請求響應時間
jmeter.all.test.startedT 執行緒數

【注意】如果要監控<請求名稱>的話,Jmeter上的“Backend Listener”修改如下引數

1. 將“summanyOnly”修改成False,

2. 將“userRegexpForSamplersList”修改成True,

3. 並且要設定“samplersList”的值,“samplersList”是可以支援正則表示式的,“samplersList”的設定要與請求對應,否則找不到該請求。如圖

設定好了,執行一下,在Grafana裡面,就可以看到自己的請求了。

如果想要了解這些監控都代表什麼意思,可以訪問Jmeter的官網地址去檢視閱讀“http://jmeter.apache.org/usermanual/realtime-results.html”

最後來一張帥氣的圖:

相關推薦

工程架構-功能測試工具-效能測試_Jmeter + Grafana + InfluxDB 效能測試監控()

通過InfluxDB支援HTTP提交,從而實現Jmeter監控的入庫,而對於資源監控可以通過(Curl+awk)Shell來過濾監控命令(iostat,Vmstat等)最後提交至庫的方式來完成監控,同理Zabbix也可以。由於本文長度問題,這裡只記錄了關於Jmeter入庫的部

Jmeter性能測試工具的使用(Web性能測試

動態參數 數量 後綴名 右鍵 創建 read mage tween 圖形界面 Jmeter性能測試工具的使用(Web性能測試) 1、下載 http://pan.baidu.com/s/1o7p18Ye 該軟件不用安裝,直接解壓打開即可使用。 2、

開源API測試工具 Hitchhiker v0.6更新 - 改進壓力測試

高級 header 參數 分鐘 goroutine log parse 變量 otto Hitchhiker 是一款開源的支持多人協作的 Restful Api 測試工具,支持Schedule, 數據對比,壓力測試,支持上傳腳本定制請求,可以輕松部署到本地,和你的team成

開發者測試(2)-采用精準測試工具對J2EE Guns開發框架進行測試

命令行 時序數據 我們 .sql roc project 控制流程 實現 分享圖片 配置測試Guns  Guns簡介    Guns是一個近幾年來基於SpringBoot的開源便利且較新的JavaEE項目開發框架,它整合了springmvc + shiro + mybati

【星雲測試】開發者測試(2)-採用精準測試工具對J2EE Guns開發框架進行測試

配置測試Guns  Guns簡介      Guns是一個近幾年來基於SpringBoot的開源便利且較新的JavaEE專案開發框架,它整合了springmvc + shiro + mybatis-plus + beetl + flowable多項開源技術,致力於讓Java後臺開發更簡潔快速

開發者測試(4)-採用精準測試工具對dubbo微服務應用進行測試

簡介:本文主要目的是把現今主流的Dubbo框架專案和精準測試進行對接,通過精準測試的資料穿透、資料採集、測試用例與程式碼的雙向追溯、資料分析等一系列精準測試的特有功能達到對專案質量的保證。   本次環境搭建分為基礎環境準備、Dubbo環境搭建、精準測試環境搭建、精準測試與Dubbo環境對接等一整套完

開發者測試(4)-采用精準測試工具對dubbo微服務應用進行測試

缺陷管理 jpg 連接 cad -o 配置過程 bce per 階段 簡介:本文主要目的是把現今主流的Dubbo框架項目和精準測試進行對接,通過精準測試的數據穿透、數據采集、測試用例與代碼的雙向追溯、數據分析等一系列精準測試的特有功能達到對項目質量的保證。 本次環境搭建分為

【星雲測試】開發者測試(4)-采用精準測試工具對dubbo微服務應用進行測試

星雲測試 term 重命名 text gen 計算方法 url 生產者和消費者 local 簡介:本文主要目的是把現今主流的Dubbo框架項目和精準測試進行對接,通過精準測試的數據穿透、數據采集、測試用例與代碼的雙向追溯、數據分析等一系列精準測試的特有功能達到對項目質量的保

搭建Jmeter + Grafana + InfluxDB效能測試監控環境

背景 Jmeter原生的實時監控每半分鐘收集一次資料,只能在Linux控制檯檢視日誌輸出,介面看起來不直觀,圖表報告只能等壓測結束後才能生成。如下圖為jmeter在Linux下執行的實時日誌:     那麼如何在壓測過程中實時生成圖表監控資料呢?這裡介紹一種實現方案:搭建Jmete

【乾貨】Jmeter + Grafana + InfluxDB 效能測試監控

序章 前幾天在群裡看到大神們在討論Jmeter + InfluxDB + Grafana監控。說起來Jmeter原生的監控確實太醜了。當年不斷安慰自己說“醜一點沒關係,只要能用,好用,就行了!”。但是內心並不是這樣,做為一名測試人員,都有一顆精益求精的心。看到有東西可以替代那原生的監控資料,果斷

Java單元測試工具:JUnit4(四)——JUnit測試套件使用及引數化設定

(四)JUnit測試套件使用及引數化設定         這篇筆記記錄JUnit測試套件的使用,即批量執行測試類;以及JUnit中的引數化設定。         @RunWith   當類被

Jmeter + Grafana + InfluxDB 效能測試監控

閱讀目錄 序章         前幾天在群裡看到大神們在討論Jmeter + InfluxDB + Grafana監控。說起來Jmeter原生的監控確實太醜了。當年不斷安慰自己說“醜一點沒關係,只要能用,好用,就行了!”。但是內心並不是這樣,做為一名測試人員,都有一顆精益求精的心。看到有東西可以替代那原生

效能測試工具VTune的功能和用法介紹

1.VTune介紹        VTune視覺化效能分析器(Intel VTune Performance Analyzer)是一個用於分析和優化程式效能的工具,作為Intel為開發者提供的專門針對尋找軟硬體效能瓶頸的一款分析工具,它能確定程式的熱點(hotspot),找

系統技術業餘研究 » Fio IO效能測試工具介紹

官網:http://freshmeat.net/projects/fio/ fio is an I/O tool meant to be used both for benchmark and stress/hardware verification. It has support for 13

GCC高階測試功能擴充套件——程式效能測試工具gprof、程式覆蓋測試工具gcov

很多年前將伺服器程式碼從Windows移植到Linux時,用過gprof進行過優化,非常有幫助。時隔多年,為了保留記憶,轉一下這篇文章。 gprof是GNU組織下的一個比較有用的效能測試功能:   主要功能:   找出應用程式中消耗CPU時間最多的函式;         

系統技術業餘研究 » fio效能測試工具新添圖形前端gfio

gfio.c: In function ‘gfio_ui_setup_log’: gfio.c:322: error: ‘GtkTreeSelection’ undeclared (first use in this function) gfio.c:322: error: ‘selection

開發效能測試工具——自己動手實現迭代功能

在用Jmeter進行效能測試時也許有人遇到過這樣的問題: 測試時TPS相當大,一臺,二臺負載機都找不到拐點,最後準備好多臺負載機才解決問題,而且管理這些機器時比較麻煩。 我們能不能解決這些問題呢?當然可以,我們可以自動動手來實現一個迭代器。之所以能夠高效,是因為我們去掉了

【蟲師--系列08】效能測試知多少---效能測試工具原理與架構

來自:http://www.cnblogs.com/fnng/archive/2012/07/31/2617546.html      作者:蟲師 在效能測試的學習過程中,堅持思想與工具(分開)並行,當前面世面上的效能測試書籍大多把理論與loadrunner融為一體講解

效能測試工具siege安裝及測試

其實對於類似的效能測試工具之前接觸過AB。我是在ubuntu下做的測試。 1、更新系統 sudo apt-get update && sudo apt-get upgrade –show-upgraded 2、下載最新版的siege wget http://do

Lighthouse前端效能優化測試工具

在前端開發中,對於自己開發的app或者web page效能的好壞,一直是讓前端開發很在意的話題。我們需要專業的網站測試工具,讓我們知道自己的網頁還有哪些需要更為優化的方面,我自己嘗試了一款工具:Lighthouse,感覺還不錯,記錄下來,也順便分享給用得著的夥伴。 Lighthouse分析web應用程式和w