Jmeter+jenkins如何快速搭建介面和效能測試持續整合解決方案-[基於windows篇]
Jenkins + Jmeter 構建介面、效能測試持續整合解決方案
Jenkins + Jmeter 可以很輕鬆的進行打包釋出程式後自動進行介面冒煙測試,或者定時效能測試。以下是詳盡的Jenkins + Jmeter 安裝配置及建立一個任務。
目錄
1.JDK安裝
- 下載JDK
- 安裝JDK
- 配置環境變數
下載JDK
在官網選擇適合自己系統的版本下載。
官網地址: http://www.oracle.com/technetwork/java/javase/downloads/index.html
安裝JDK
下載的檔案是.exe安裝程式,雙擊或右鍵開啟安裝程式。
選擇你要安裝的路徑。
開始安裝。
如果安裝過程中彈出這個彈窗,注意看目標路徑是jre,可以直接關閉視窗。因為剛才安裝過程中已經安裝了jre了。
安裝完成。
配置環境變數
計算機-右鍵-屬性-高階系統設定-環境變數-新建
變數名: JAVA_HOME, 變數值: 你的JDK安裝路徑
雙擊或點選編輯Path變數,變數值中在句首填入%JAVA_HOME%/bin;
在cmd中輸入java -version,如出現版本資訊則表示配置成功。
2.Jmeter安裝
- 下載Jmeter
- 安裝配置Jmeter
下載Jmeter
在官網選擇適合自己系統的版本下載,Binaries是二進位制版本。
官網地址: http://jmeter.apache.org/download_jmeter.cgi
安裝Jmeter
下載的檔案是.zip解壓包格式,解壓到你本地磁碟中。
解壓出來的檔案無須安裝,直接可以使用。
配置環境變數
計算機-右鍵-屬性-高階系統設定-環境變數-新建
變數名: JMETER_HOME, 變數值: 你的Jmeter安裝路徑
雙擊或點選編輯Path變數,變數值中在句首填入%JMETER_HOME%/bin;
在cmd中輸入jmeter -v,如出現版本資訊則表示配置成功。
3. Jmeter外掛
- Plugins Manager (外掛管理工具)
- JMeterPlugins-Standard & ServerAgent (標準外掛包 & 監控資源率)
Plugins Manager (外掛管理工具)
訪問官網,點選plugins manager.jar進行下載。
官網地址: https://jmeter-plugins.org/downloads/all/
將.jar檔案放入jmeter安裝路徑/lib/ext路徑下。
重新啟動Jmeter.bat,在選項中可以進入Plugins Manager。
介面如下,可新增的外掛在Available Plugins選項中。
JMeterPlugins-Standard (標準外掛包)
除了在Plugins Manager中新增/更新外掛外,也可以直接在官網下載外掛包。
訪問官網,點選JMeterPlugins-Standard-1.4.0.zip進行下載。
官網地址: https://jmeter-plugins.org/downloads/old/
常規外掛包中有一個性能資源監聽器(PerfMon Metrics Collector),額外需要一個程式來監聽伺服器效能。
訪問官網,點選ServerAgent-2.2.1.zip進行下載。
官網地址: https://jmeter-plugins.org/wiki/PerfMonAgent/
下載的檔案是.zip解壓包格式,將2個解壓包都複製到你的Jmeter安裝路徑根目錄。
其中,JMeterPlugins-Stantard-1.4.0.zip選擇解壓到當前檔案件。
頁面提示確認檔案替換提示框,選擇全部選是。
其次,ServerAgent-2.2.1.zuo選擇解壓到檔案。(此程式為獨立程式,應該放在伺服器上,此處作為除錯用。)
ServerAgent資料夾內容如下,Windows上執行startAgent.bat/ Linux上執行startAgent.sh。
4. Jmeter除錯
- GUI執行測試
- 非GUI執行測試
GUI執行測試
將ServerAgent資料夾複製到伺服器上,執行startAgent.bat。
在測試機上執行Jmeter,新建一個指令碼(測試計劃)。
{__P(,)}函式用於接收系統傳遞的引數,格式為:{__P(外部變數名,預設值)}。
新增一個執行緒組。
對測試過程中需要變更的引數都可以使用${__P(,)}函式。
新增一個HTTP請求。
HTTP請求用於向伺服器發出請求。
新增測試需要的常規監聽器,可以將測試結果寫入本地的檔案中。
${filePath}是測試計劃中我定義的變數,這裡用來指定存放測試結果的路徑。
如果是進行效能測試,幾乎都需要PerfMon Metrics Collector這個監聽器。
在Host/IP中填入第一步中執行startAgent.bat的伺服器地址,埠預設是4444。
這裡需要額外指定儲存檔案,因為該監聽器與其他監聽器儲存內容不一致。
點選執行按鈕,PerfMon Metrics Collector監聽器就可以看到伺服器資源情況了。(未儲存的指令碼執行會提示你儲存,本教程儲存為桌面\Demo\Demo.jmx)
非GUI執行測試
編寫一個.bat批處理檔案,用於快速啟動測試。
以下2點特殊說明:
1. Jmeter -J引數名=值 是用於給${__P(,)}傳參的命令
2. java -jar CMDRunner.jar是外掛包中用於生成監聽器圖片的架包。
完整語句:
@echo off
rem 生成當前日期
set date=%date:~0,4%%date:~5,2%%date:~8,2% if "%time:~0,2%" lss "10" (set hour=0%time:~1,1%) else (set hour=%time:~0,2%) set time=%hour%%time:~3,2%%time:~6,2% set d=%date%%time% echo 當前時間: %d% rem 配置地址 set jmxPath="C:\Users\test1\Desktop\Demo" set jmeterPath="C:\Users\test1\Desktop\apache-jmeter-3.2" rem 建立日期資料夾 mkdir %jmxPath%\%d% rem 執行Jmeter call jmeter -JfilePath="%jmxPath%\%d%" -JthreadNum=50 -JrampUp=5 -Jcycles=1 -n -t %jmxPath%\Demo.jmx -l %jmxPath%\result.jtl -e -o %jmxPath%\%d%\Report rem 生成監聽器截圖 call java -jar %jmeterPath%\lib\ext\CMDRunner.jar --tool Reporter --generate-png %jmxPath%\%d%\ResponseTimesOverTime.png --input-jtl %jmxPath%\%d%\result.jtl --plugin-type ResponseTimesOverTime call java -jar %jmeterPath%\lib\ext\CMDRunner.jar --tool Reporter --generate-png %jmxPath%\%d%\CPUMemory.png --input-jtl %jmxPath%\%d%\CPUMemory.jtl --plugin-type PerfMon rem 剪下日誌 move jmeter.log %jmxPath%\%d% rem pause
儲存為run.bat
雙擊或右鍵開啟run.bat,即可以執行測試。
run.bat中生成了一個日期格式的資料夾,並把路徑通過-JfilePath傳給了Jmeter;Jmeter通過${__P(filePath,預設值)}獲取到路徑,用於儲存監聽器結果。
Report資料夾是通過 -e -o .\Report 生成的。是JMeter3.0新增的圖表型HTML報告。
監聽器中儲存的2份jtl檔案,可以呼叫CMDRunner.jar,直接轉成png,無需開啟GUI介面匯入。
5. 安裝Jenkins
- Jenkins下載
- Jenkins安裝
Jenkins下載
在官網選擇適合自己系統的版本下載。
官網地址: https://jenkins.io/download/
Jenkins安裝
下載的檔案是.zip解壓包格式,解壓到你本地磁碟中。
解壓出來的檔案是jenkins.msi安裝程式,雙擊或右鍵開啟安裝程式。
選擇你要安裝的路徑。
不斷下一步,直到開始安裝。
安裝完成後會自動開啟瀏覽器,訪問Jenkins本地地址,預設埠8080。
根據頁面提供的路徑,找到initialAdminPassword檔案,裡面就是初始密碼。
根據需求選擇建議安裝還是自定義安裝。本教程選擇前者。
開始安裝,等待安裝完成。
建立管理員使用者,填入你想建立的帳密。
安裝完成。
歡迎使用Jenkins!
6. Jenkins外掛
- performance Plugin (效能外掛)
Performance Plguin (效能外掛)
訪問本地Jenkins,教程中是http://127.0.0.1:8080/。
點選系統管理-管理外掛。
選擇可選外掛,目前未安裝的外掛在該選項中。
搜尋”Performance Plguin”,找到該外掛,勾選後點選直接安裝。
等待安裝完成。
7. Jenkins新增任務
- 新增自由風格軟體專案
新增自由風格軟體專案
訪問本地Jenkins,教程中是http://127.0.0.1:8080/。
點選新建,填入任務名,選擇構建一個自由風格的軟體專案,點選OK。
點選增加構建步驟,選擇Execute Windows batch command。(Windows平臺)
將5. 除錯中寫好的run.bat內容複製進命令框中。
如果需要用到之前新增的Performance Plguin外掛,需要將result.jtl輸出到Jenkins的workspace路徑中。(圖中在紅線處更改相應部分)
點選增加構建後操作步驟,選擇Performance Plguin。
在Source data files處,填入”*/.jtl”。
回到上方,找到構建環境,勾選Delete workspace before build starts。
目的是每次執行都會生成result.jtl,如果生成路徑已存在同名檔案會導致錯誤。
當完成需要的設定後,點選儲存按鈕,回到任務頁面。
點選立即構建,Jenkins就開始執行剛才填入的批處理語句,然後生成右側的效能結果概覽,並且每次執行都會清除工作區內容。
8. Jenkins其他外掛
- Build With Parameters (構建時傳入引數)
- Groovy Postbuild
Build With Parameters (構建時傳入引數)
系統管理-管理外掛-可選外掛
搜尋Build With Parameters找到該外掛,勾選後點選直接安裝。
等待安裝完成。
回到首頁,對7. 新增任務中建立的任務進行配置。
General中新增了引數化構建過程複選框,勾選該複選框。
點選新增引數下拉框,選擇String Parameter選項。
新增指令碼需要傳入的引數及預設值,這裡選擇了執行緒數、啟動時間和迴圈次數。
構建步驟中,需要傳入的值用上一步驟設定的引數名填入,格式為%引數名%。
儲存後,在任務頁面的”立即構建”變為了”Build with Parameters”。
點選Build with Parameters,在構建任務前,Jenkins會先讓你填入引數值。
填入預期的值或直接使用預設值,點選開始構建即可開始執行任務。
Groovy Postbuild
系統管理-管理外掛-可選外掛
搜尋Groovy Postbuild找到該外掛,勾選後點選直接安裝。
點選增加構建後操作步驟,選擇Groovy Postbuild。
在Groovy Script框中輸入用於在構建列表顯示內容的程式碼。
def threadNum = manager.build.buildVariables.get("threadNum")
manager.addShortText("thread: " + threadNum)
構建一下,看一下效果吧。
可以看到構建列表中,顯示了這次構建時的執行緒數為50。
9. 結語
Jenkins非常的方便用於執行一系列任務,可以為測試人員完成很多工作。而Jmeter小巧強大,我常使用它代替postman、HttpRequester等工具。本人還處於初學階段,我能想到的有很多,仍需要去摸索和思考很多東西。例如:以持續整合思想可以設定job1用於打包釋出,job2自動在job1完成時進行介面測試。那麼重點就是jmx指令碼的編寫上,需要有業務邏輯,並且資料能夠迴圈使用。這是我下一步需要結合工作中的專案切身去思考的東西。
如果想更多的瞭解,可以檢視博主的其他文章,原文地址:https://blog.csdn.net/tomoya_chen/article/details/72677336