【背景說明】
使用jmeter進行性能測試時,工具自帶的查看結果方式往往不夠直觀和明了,所以我們需要搭建一個可視化監控平臺來完成結果監控,這里我們采用三種JMeter+Grafana+Influxdb的方法來完成平臺搭建
【實現原理】
通過influxdb數據庫存儲jmeter的結果,再通過grafana采集influxdb數據庫數據,完成監控平臺展示
【平臺搭建】
方法一:Windows或macOS環境下搭建
1.InfluxDB安裝
首先進入influxDB官網下載安裝包(選擇2.0以下版本)
https://portal.influxdata.com/downloads/
Windows可使用以下鏈接直接下載
https://dl.influxdata.com/influxdb/releases/influxdb-1.7.9_windows_amd64.zip
下載完成后進行解壓,以Windows為例:
進入文件夾可看到以下目錄
點擊influxd.exe啟動數據庫,啟動成功如下圖所示
點擊influx.exe進入influxdb客戶端,進入后創建名字為“jmeter”的數據庫
2.grafana安裝
首先進入grafana官網下載安裝包
https://grafana.com/grafana/download
選擇對應系統后下載,以Windows為例:
解壓完成后進入bin目錄點擊grafana-server.exe
來啟動grafana程序
啟動完成后打開瀏覽器輸入http://localhost:3000
進入grafana登錄頁面
默認用戶名和密碼都為admin,進入首頁后點擊添加數據庫
選擇influxdb數據庫,填寫以下信息即可
點擊sava&test,顯示data source is working表示數據庫連接成功
導入已下載好的儀表盤
也可以到grafana官網尋找模板,在導入模板處輸入需要模板的Downlosds編號即可
https://grafana.com/grafana/dashboards
最后如圖所示
3.jmeter配置
1.jmeter中,添加“監聽器 -> 后端監聽器”
配置后端監聽器,目的是把jmeter的結果存入influxdb數據庫
方法二:Linux環境下搭建
1.influxdb安裝
使用命令直接安裝influxdb
wget https://dl.influxdata.com/influxdb/releases/influxdb-1.8.4_linux_amd64.tar.gz
解壓influxdb壓縮包
tar -zxvf influxdb-1.8.4_linux_amd64.tar.gz
添加環境變量
-
cd influxdb-1.8.4-1/usr/bin
-
sudo cp {influx,influxd} /usr/local/bin/
啟動influxdb
influxd
啟動influxdb客戶端,創建jmeter數據庫
-
influx
-
create database jmeter
2.grafana安裝
使用命令直接安裝
wget https://dl.grafana.com/oss/release/grafana-7.5.2.linux-amd64.tar.gz
解壓安裝包
tar -zxvf grafana-7.5.2.linux-amd64.tar.gz
啟動grafana
-
cd grafana-7.5.2/bin
-
./grafana-server
訪問grafana網頁,其余操作和方法一相同
http://ip:3000
3.jdk+jmeter安裝
安裝jmeter之前需要先安裝jdk,下載jdk(可以使用下面地址進行下載,也可以去官網下載,官網需要登錄oracle)https://www.jdkdownload.com/
,我這選擇jdk-8u181-linux-x64.tar.gz
版本下載
解壓jdk
tar -zxvf jdk-8u181-linux-x64.tar.gz
配置環境變量,修改配置文件vi /etc/profile
,文本最后加上以下內容
JAVA_HOME=/usr/local/java/jdk1.8.0_181CLASSPATH=$JAVA_HOME/lib/PATH=$PATH:$JAVA_HOME/binexport PATH JAVA_HOME CLASSPATH
使環境變量生效
source /etc/profile
驗證jdk配置成功
java -version
使用命令直接安裝jmeter
wget https://mirrors.bfsu.edu.cn/apache//jmeter/binaries/apache-jmeter-5.4.3.tgz
解壓jmeter
tar -zxf apache-jmeter-5.4.3.tgz
配置jmeter環境變量,vi /etc/profile
,文本最后加上以下內容
export JMETER_HOME=/usr/local/apache-jmeter-5.4.3export CLASSPATH=$JMETER_HOME/lib/ext/ApacheJMeter_core.jar:$JMETER_HOME/lib/jorphan.jar:$CLASSPATHexport PATH=$JMETER_HOME/bin:$PATH
使環境變量生效
source /etc/profile
驗證jmeter配置成功
jmeter --version
將jmeter腳本上傳到當前文件夾中,執行以下命令啟動jmeter
jmeter -n -t ***.jmx -l test.jtl參數說明:-n 非 GUI 模式 -> 在非 GUI 模式下運行 JMeter-t 測試文件 -> 要運行的 JMeter 測試腳本文件-l 日志文件 -> 記錄結果的文件
方法三:docker容器下安裝
1.influxdb安裝并運行(選擇2.0以下版本)
docker run -itd --name influxdb -p 8086:8086 influxdb:1.8.3
進入容器
docker exec -it influxdb /bin/bash
創建數據庫
-
influx
-
create database jmeter
-
show databases
2.grafana安裝并運行
docker run -itd --name grafana -p 3000:3000 grafana/grafana
進入容器
docker exec -it grafana /bin/bash
訪問grafana網頁,其余操作和方法一相同(需注意容器內連接influxdb使用容器ip)
http://ip:3000
3.jmeter安裝
首先需要先下載jmeter
wget https://mirrors.bfsu.edu.cn/apache//jmeter/binaries/apache-jmeter-5.4.3.tgz
我們使用dockerfile安裝,內容如下
FROM java:8ENV http_proxy ""ENV https_proxy ""RUN mkdir /jmeterdockerRUN mkdir -p /jmeterdocker/testRUN mkdir -p /jmeterdocker/test/input/jmxRUN mkdir -p /jmeterdocker/test/input/testdataRUN mkdir -p /jmeterdocker/test/report/htmlRUN mkdir -p /jmeterdocker/test/report/jtlRUN mkdir -p /jmeterdocker/test/report/outputdataRUN chmod -R 777 /jmeterdockerENV JMETER_VERSION=5.4.3ENV JMETER_HOME=/jmeterdocker/apache-jmeter-${JMETER_VERSION}ENV JMETER_PATH=${JMETER_HOME}/bin:${PATH}ENV PATH=${JMETER_HOME}/bin:${PATH}COPY apache-jmeter-${JMETER_VERSION}.tgz /jmeterdockerRUN cd /jmeterdocker \&& tar xvf apache-jmeter-${JMETER_VERSION}.tgz \&& rm apache-jmeter-${JMETER_VERSION}.tgz
在dockerfile文件路徑下執行命令
docker build -t jmeter .
創建jmeter容器
docker run -itd --name=jmeter -v /tmp/jmeterspace/test/input/jmx:/jmeterdocker/test/input/jmx \-v /tmp/jmeterspace/test/input/testdata:/jmeterdocker/test/input/testdata \-v /tmp/jmeterspace/test/report/html:/jmeterdocker/test/report/html \-v /tmp/jmeterspace/test/report/jtl:/jmeterdocker/test/report/jtl \-v /tmp/jmeterspace/test/report/outputputdata:/jmeterdocker/test/report/outputdata \-p 1099:1099 \jmeter
將jmeter腳本放在容器外的/tmp/jmeterspace/test/input/jmx
路徑下
進入容器,執行以下命令
docker exec -it jmeter /bin/bashcd /jmeterdocker/test/input/jmxjmeter -n -t ***.jmx -l test.jtl參數說明:-n 非 GUI 模式 -> 在非 GUI 模式下運行 JMeter-t 測試文件 -> 要運行的 JMeter 測試腳本文件-l 日志文件 -> 記錄結果的文件
運行結果如圖所示
【總結】
以上三種方式都可以完成JMeter+Grafana+Influxdb平臺搭建,這里可根據需要選擇相應的方式安裝即可
最后感謝每一個認真閱讀我文章的人,禮尚往來總是要有的,雖然不是什么很值錢的東西,如果你用得到的話可以直接拿走:
?
這些資料,對于【軟件測試】的朋友來說應該是最全面最完整的備戰倉庫,這個倉庫也陪伴上萬個測試工程師們走過最艱難的路程,希望也能幫助到你!