在上面一篇文章,已經(jīng)就 JMeter 自動化框架進行環(huán)境搭建,如果大家還不了解,請先查看 環(huán)境搭建
編寫 JMeter 腳本
首先,準備好一個 JMeter 腳本文件及其參數(shù)化的數(shù)據(jù),本篇文章以訪問百度首頁為例。編寫 JMeter 腳本的過程就不在這里贅述了,大家可以百度一下。
下圖是一個編寫完整的 JMeter 腳本,完整版本,大家請到這里下載 my-baidu-test.jmx。

配置 svn 上的工程目錄和文件
在 svn 上配置好工程目錄以及相應(yīng)的 JMeter 腳本。圖片顯示 JMeterTest002 工程的目錄結(jié)構(gòu)及腳本所在文件。

PS:說句題外話,在工程中構(gòu)建良好的目錄結(jié)構(gòu),有助于更清晰地查看問題,請查看謝佳老師的文章 JMeter工具基礎(chǔ)知識篇-工程目錄結(jié)構(gòu)及命名規(guī)范。
Jenkins 操作
完成以上2個步驟后,剩下的,均為 jenkins 工具的事了。
一、在 jenkins 創(chuàng)建工程
創(chuàng)建工程的步驟,以幾張圖片來說明吧。




按4張圖片所設(shè)置的步驟一致,即可完成創(chuàng)建一個自由風(fēng)格的 jenkins 工程。在配置構(gòu)建步驟之前,最好先確認一下 svn 的配置是否準確,按下圖操作:

確認成功構(gòu)建,到 jenkins 的主目錄(可到【首頁-系統(tǒng)管理-系統(tǒng)設(shè)置-主目錄】查看)下的 workspace 文件夾中,查看是否下載工程文件成功即可。
二、配置工程構(gòu)建步驟
jenkins 構(gòu)建工程的核心是終端命令的運行,所以我們在配置構(gòu)建步驟時,都是配置 JMeter 的命令行,根據(jù)使用的系統(tǒng)不同,選擇不同的腳本語言。Windows 選擇(Windows batch command),macOS 和 Linux 選擇 Shell。
準備
首先,我們要思考的問題是我們想要的一個測試流程,根據(jù)這個流程挑選 JMeter 的命令。
1、創(chuàng)建好指定的結(jié)果目錄;
2、執(zhí)行 jmeter 結(jié)果,得出測試結(jié)果 jtl;
3、根據(jù) jtl 生成測試報告;
4、(選做)最好能將測試報告顯示在 jenkins 上,方便查看。
步驟1-3在【配置 - 構(gòu)建】路徑完成,步驟4在【配置 - 構(gòu)建/構(gòu)建后操作】兩個路徑完成。
1、創(chuàng)建結(jié)果子目錄,便于管理執(zhí)行結(jié)果

2、配置 JMeter 執(zhí)行命令

PS:如果腳本換行,在執(zhí)行過程中,會報錯。
3、配置 JMeter 生成報告命令

4、配置測試報告呈現(xiàn)插件
本次步驟需要額外的插件,請到【首頁-系統(tǒng)管理-管理插件-可選插件】安裝HTML Publisher Plugin插件。

5、總結(jié)
進行到這里,基本上,一個工程構(gòu)建+測試+測試報告呈現(xiàn)基本都已經(jīng)實現(xiàn)了。
二、優(yōu)化上述構(gòu)建步驟命令
從上述命令可以看出,命令還不是很好,不夠規(guī)范,有很多重復(fù)的參數(shù)。我們可以使用參數(shù)化來優(yōu)化上述的命令。總結(jié)一下上述命令重復(fù)的參數(shù):
param1: /usr/local/Cellar/jmeter/3.3/libexec/bin
param2: /Users/yourName/.jenkins/workspace/JMeterTest001
param3: my-baidu-test
param4: 加上執(zhí)行次數(shù)
將以上三個重復(fù)的參數(shù)并加上執(zhí)行次數(shù)后,重新命名為
param1 --> jmeterExecutePath
param2 --> WORKSPACE (jenkins 的環(huán)境變量)
param3 --> jmeterScriptName
param4 --> resultIndex
完成后,那么上述構(gòu)建的執(zhí)行命令應(yīng)該如下所示:
# 創(chuàng)建結(jié)果子目錄,便于管理執(zhí)行結(jié)果
mkdir $WORKSPACE/result/html/$resultIndex
mkdir $WORKSPACE/result/jtl/$resultIndex
mkdir $WORKSPACE/result/log/$resultIndex
# jmeter 腳本執(zhí)行命令
$jmeterExecutePath/jmeter.sh -n -t $WORKSPACE/script/$jmeterScriptName.jmx -l $WORKSPACE/result/jtl/$resultIndex/$jmeterScriptName.jtl -j $WORKSPACE/result/log/$resultIndex/$jmeterScriptName.log
# jmeter 報告生成命令
$jmeterExecutePath/jmeter.sh -g $WORKSPACE/result/jtl/$resultIndex/$jmeterScriptName.jtl -o $WORKSPACE/result/html/$resultIndex -j $WORKSPACE/result/log/$resultIndex/${jmeterScriptName}-report.log
# html報告呈現(xiàn)
html Report 路徑:$WORKSPACE/result/html/$resultIndex
完成后,如下圖所示


三、總結(jié)
一個簡單實用 jenkins 構(gòu)建 JMeter 接口自動化的例子就到這里結(jié)束了。本篇文章還沒正式完成,沒有將測試結(jié)果回傳到服務(wù)器上,我過幾天再針對這塊更新下。歡迎大家一起討論,一起進步。