為什么要搭建性能監(jiān)控平臺?
1.1 需求背景
在用 Jmeter
獲取性能測試結(jié)果的時候, Jmeter
本身帶有聚合報告如下圖所示:
這個報告有幾個很明顯的缺點(diǎn):
-
只能自己看,無法實時共享;
-
報告信息的展示比較簡陋單一,不直觀;
1.2 需求方案
為了解決上述問題,必須要請出了 InfluxDB
+ Grafana
:
-
InfluxDB :持續(xù)型數(shù)據(jù)庫,有時間戳組件,以時間的形式去存儲數(shù)據(jù)
-
Grafana :一款采用 Go 語言編寫的開源應(yīng)用,主要用于大規(guī)模指標(biāo)數(shù)據(jù)的可視化展現(xiàn),是網(wǎng)絡(luò)架構(gòu)和應(yīng)用分析中最流行的時序數(shù)據(jù)展示工具
簡單總結(jié)起來就是:
將 Jmeter
的數(shù)據(jù)導(dǎo)入 InfluxDB
,再用 Grafana
從 InfluxDB
中獲取數(shù)據(jù)并以特定的模板進(jìn)行展示
本次實踐是用目前較為流行的 Docker 的方式進(jìn)行部署,也推薦使用,作為一名普通的測試,會了點(diǎn) Docker 的皮毛就已經(jīng)愛不釋手了,對于頭疼的環(huán)境問題真的太好用了,強(qiáng)烈推薦。
性能監(jiān)控平臺部署實踐
2.1 Docker環(huán)境
本文的重點(diǎn)并不是介紹 Docker,所以不了解的小伙伴需要自己去學(xué)習(xí)一下基本的安裝和操作,可參考之前發(fā)送的 Docker 文章。
2.2 InfluxDB部署
1)首先去下載InfluxDB的鏡像,下載很簡單,直接pull就好,默認(rèn)為下載最新的鏡像:
$ docker pull influxdb
目前最新的influxdb不支持網(wǎng)頁端的查看,僅可用命令行的形式,不過沒有什么影響,如果真的想要有網(wǎng)頁端的顯示的話可以嘗試下載較前的鏡像:tutum/influxdb
2)啟動一個容器,并將端口 8083
和 8086
映射出來,如果用的是 tutum/influxdb
鏡像,在訪問8083端口時就可以看到網(wǎng)頁端的展示,我這里用的是最新的,所以就沒有啦:
$ docker run -d --name jmeter-influx -p 8083:8083 -p 8086:8086 influxdb
3)進(jìn)入容器內(nèi)部,創(chuàng)建名為jmeter的數(shù)據(jù)庫:
進(jìn)入 jmeter-influx
容器
$ docker exec -it jmeter-influx bash
root@517f57017d99:/#
進(jìn)入 influx
, create database jmeter
創(chuàng)建名為 jmeter
的數(shù)據(jù)庫, show databases
命令查看數(shù)據(jù)庫創(chuàng)建成功
root@517f57017d99:/# influx
Connected to http://localhost:8086 version 1.7.10
InfluxDB shell version: 1.7.10
> create database jmeter
> show databases
name: databases
name
----
_internal
jmeter
4)使用 J meter
庫, select
查看數(shù)據(jù),這個時候應(yīng)該是沒有數(shù)據(jù)的:
$ > use jmeter
Using database jmeter
> select * from jmeter
>
2.3 Jmeter腳本設(shè)置
這里需要創(chuàng)建一個登錄注冊場景的 Jmeter
腳本,往期文章有發(fā)布,本次就以此來進(jìn)行測試結(jié)果演示。具體可參考之前發(fā)送的公眾號文章。文章末尾的「往期回顧」第二篇文章即可閱讀。
1)想要將 jmeter
的測試數(shù)據(jù)導(dǎo)入 influxDB
,就需要在 Jmeter
中使用 Backend Listener
配置
先看一下配置好的 Backend Listener
:
2)主要配置說明:implementation
選擇 influxdb
所對應(yīng)的:
-
influxdbUrl:需要改為自己
influxdb
的部署ip
和映射端口,我這里是部署在本地,所以就是localhost
,端口是容器啟動時映射的8086
端口,db
后面跟的是剛才創(chuàng)建的數(shù)據(jù)庫名稱 -
application:可根據(jù)需要自由定義,只是注意后面在
grafana
中選對即可 -
measurement:表名,默認(rèn)是
jmeter
,也可以自定義 -
summaryOnly:選擇
true
的話就只有總體的數(shù)據(jù),false
會將每個transaction
都分別記錄
3)運(yùn)行驗證
運(yùn)行 Jmeter
腳本,然后再次在 influxdb
中查看數(shù)據(jù),發(fā)現(xiàn)類似下面的數(shù)據(jù)說明輸入導(dǎo)入成功:
2.4、Grafana部署
1)首先我們需要下載grafana的鏡像:
$ docker pull grafana/grafana
2)啟動一個grafana容器,將3000端口映射出來:
$ docker run -d --name grafana -p 3000:3000 grafana/grafana
3)網(wǎng)頁端訪問locahost:3000驗證部署成功
4)選擇添加數(shù)據(jù)源
5)找到并選擇 influxdb
:
6)配置數(shù)據(jù)源
數(shù)據(jù)源創(chuàng)建成功時會有綠色的提示:
7)導(dǎo)入模板
模板導(dǎo)入分別有以下3種方式:
- 直接輸入模板id號
- 直接上傳模板json文件
- 直接輸入模板json內(nèi)容
8)下載模板,在grafana的官網(wǎng)下載我們需要的展示模板
https://grafana.com/grafana/dashboards?dataSource=influxdb&search=jmeter
下面這兩個是我嘗試過的模板:
9)導(dǎo)入模板,我這里選擇的是導(dǎo)入json文件的方式,導(dǎo)入后如下,配置好模板名稱和對應(yīng)的數(shù)據(jù)源,然后 import
即可
10)展示設(shè)置,首先選擇我們創(chuàng)建的application
注意: 如果我們修改過表名,也就是在jmeter的Backend Listener的measurement配置(默認(rèn)為jmeter),這個時候就需要去設(shè)置中進(jìn)行修改(我這里使用的就是默認(rèn)的,所以無需修改):
效果展示及推薦學(xué)習(xí)
經(jīng)過一系列的奮斗之后,該到了我們檢驗成果的時候了。使用 Docker + JMeter + InfluxDB + Grafana 到底可以搭建怎樣的性能監(jiān)控平臺呢?相比較 JMeter 自帶的監(jiān)控平臺,我們搭建的性能監(jiān)控平臺究竟有什么優(yōu)勢呢?接下來就是展示成果的時候啦!
Appium 官方說明文檔:
http://appium.io/docs/en/writing-running-appium/finding-elements/
http://appium.io/docs/en/commands/element/find-elements/
Uiautomator2 源碼路徑:
https://github.com/appium/appium-uiautomator2-server/blob/master/app/src/main/java/io/appium/uiautomator2/handler/FindElement.java
另免費(fèi)贈送軟件測試開發(fā)方面的專業(yè)資料包!助您事半功倍,提升技能,把握職場先機(jī)。
軟件測試職業(yè)發(fā)展
零基礎(chǔ)入門
測試必備編程篇
自動化測試
性能測試
測試管理
工程效能篇
面試求職篇文章來源:http://www.zghlxwxcb.cn/news/detail-783955.html
軟件測試的面試寶典,內(nèi)含一線互聯(lián)網(wǎng)大廠面試真題、面試技巧、軟件測試面試簡歷指導(dǎo),免費(fèi)領(lǐng)??!文章來源地址http://www.zghlxwxcb.cn/news/detail-783955.html
到了這里,關(guān)于高效性能監(jiān)測解決方案:Docker+Jmeter+InfluxDB+Grafana搭建強(qiáng)大性能監(jiān)測平臺,文末獲取實用干貨大禮包!的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!