1. 程式人生 > >Jmeter+jenkins如何快速搭建接口和性能測試持續集成解決方案-[基於windows篇]

Jmeter+jenkins如何快速搭建接口和性能測試持續集成解決方案-[基於windows篇]

pau 解決 fill containe lec 配置環境變量 java_home 保存 man

最近在用Jmeter本來想寫一個詳細的使用教程,突然看到有前輩已經寫好了不錯的教程,特此"借花獻佛"整理出來分享給大家!

Jenkins + Jmeter 構建接口、性能測試持續集成解決方案

  Jenkins + Jmeter 可以很輕松的進行打包發布程序後自動進行接口冒煙測試,或者定時性能測試。以下是詳盡的Jenkins + Jmeter 安裝配置及創建一個任務。


目錄

  • Jenkins Jmeter 構建接口性能測試
    • 目錄
    • JDK安裝
      • 下載JDK
      • 安裝JDK
      • 配置環境變量
    • Jmeter安裝
      • 下載Jmeter
      • 安裝Jmeter
      • 配置環境變量
    • Jmeter插件
      • Plugins Manager 插件管理工具
      • JMeterPlugins-Standard 標準插件包
    • Jmeter調試
      • GUI執行測試
      • 非GUI執行測試
    • 安裝Jenkins
      • Jenkins下載
      • Jenkins安裝
    • Jenkins插件
      • Performance Plguin 性能插件
    • Jenkins新增任務
      • 新增自由風格軟件項目
    • Jenkins其他插件
      • Build With Parameters 構建時傳入參數
      • Groovy Postbuild
    • 結語

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

Jmeter+jenkins如何快速搭建接口和性能測試持續集成解決方案-[基於windows篇]