Jenkins+Jmeter+Ant自動化整合環境搭建
Jenkins + Jmeter +Ant自動化整合環境搭建
軟體測試技術交流群 : 429183023
2017-03-24更新,部分網友反映build.xml檔案設定有問題,之前版本的blog的確是沒有貼出來具體的build設定,此次更新已經給出參考配置
注意:大家有什麼問題的,可以加群一起聊,或者評論留言
搭建環境(此篇blog編寫時候的搭建環境,目前雲盤已經上傳JDK、Ant、Jmeter、Jenkin最近版本):
JDK:jdk1.7.0_79
Ant:apache-ant-1.9.7
Jmeter: apache-jmeter-2.13
Jenkins: jenkins-1.651.1
以上安裝包以及相關工具,jmeter常用外掛下載地址:
-
JDK安裝:
- 雙擊JDK安裝包,選擇安裝路徑(為了節省C盤系統盤空間,不建議選擇預設路徑。本人所有相關軟體全部安裝在 D:\Progrom Files目錄下,例如Jdk安裝在D:\Progrom Files\Java\jdk1.7.0_79路徑下);
- 配置JDK環境變數:
1)系統變數→新建 JAVA_HOME 變數 。
變數值填寫jdk的安裝目錄(本人是 D:\Progrom Files\Java\jdk1.7.0_79);
2)系統變數→尋找 Path 變數→編輯
在變數值最後輸入 %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
(注意原來Path的變數值末尾有沒有;號,如果沒有,先輸入;號再輸入上面的程式碼)
3)系統變數→新建 CLASSPATH 變數
變數值填寫 .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar (注意最前面有一點)
系統變數配置完畢
4)檢驗是否配置成功 執行cmd 輸入 java -version (java 和 -version 之間有空格)
若如圖所示 顯示版本資訊 則說明安裝和配置成功。
-
Jmeter安裝:
- 解壓apache-jmeter-2.13.zip到D:\Progrom Files目錄下。
-
Jmeter外掛的安裝。解壓JMeterPlugins-Extras-1.3.0.zip、JMeterPlugins-Standard-1.3.0.zip,將對應ext目錄下的檔案拷貝到D:\Progrom Files\apache-jmeter-2.13\lib\ext目錄下;
- 配置jmeter環境變數:
1) 設定環境變數,新建系統變數在變數名中輸入:JMETER_HOME,變數值中輸入:D:\Progrom Files\apache-jmeter-2.13,點選確定即可。
2) 在環境變數CLASSPATH中新增%JMETER_HOME%\lib\ext\ApacheJMeter_core.jar;%JMETER_HOME%\lib\jorphan.jar;%JMETER_HOME%\lib\logkit-1.2.jar;
在環境變數Path中新增%JMETER_HOME%\bin
3) 檢驗是否配置成功 執行cmd 輸入 jmeter -v (jmeter和 -v 之間有空格)若如圖所示 顯示版本資訊 則說明安裝和配置成功。
-
安裝Ant
- 解壓apache-ant-1.9.7-bin.zip到D:\Progrom Files目錄下;
-
配置Ant環境變數
-
新建以下環境變數:
ANT_HOME:D:\Progrom Files\apache-ant-1.9.7,此為你的ANT安裝路徑;
設定完成後,點選"確認"來儲存。
-
在環境變數PATH的最後面新增一下內容:
;%ANT_HOME%\bin 注意前面的分號,如果PATH中最後沒有分號";"的話要加上,有的話就可去除。
- 進入cmd命令視窗,在CMD視窗中輸入ant -version,敲擊回城鍵,會顯示出你安裝的ANT版本,如果成功顯示,說明你的配置應該是成功了.
-
新建以下環境變數:
-
本地除錯使用ant構建執行Jmeter,並且生成jtl、Html報告;
- jmeter預設儲存的是.csv格式的檔案,所以我們先要設定一下bin/jmeter.properties檔案內容,修改jmeter.properties檔案 jmeter.save.saveservice.output_format=xml;
- 將apache-jmeter-2.13\extras\ant-jmeter-1.1.1.jar拷貝到apache-ant-1.9.7\lib目錄下;
-
在\apache-jmeter-2.13\extras目錄下開啟CMD,執行"ant.bat -file build.xml -Dtest=Test" . 檢視\apache-jmeter-2.13\extras目錄下是否出現Test.jtl、Test.html檔案,若有,則構建成功。注意:Test.jmx是預設存在的Sample指令碼檔案。
若構建失敗,請分析cmd列印的日誌訊息,定位問題;
-
build檔案推薦設定:
-
<!-- 這個是推薦build,至於原理,大家可以檢視ant-jmeter-1.1.1.jar原始碼 -->
<?xml version="1.0" encoding="UTF-8"?> <project name="ant-jmeter-test" default="run" basedir="."> <tstamp> <format property="time" pattern="yyyyMMddhhmm" /> </tstamp> <property name="basedirectory" value="D:\Program Files\apache-jmeter-3.1\extras" /> <!-- 需要改成自己本地的 Jmeter 目錄--> <property name="jmeter.home" value="D:\Program Files\apache-jmeter-3.1" /> <!-- jmeter生成jtl格式的結果報告的路徑--> <property name="jmeter.result.jtl.dir" value="${basedirectory}" /> <!-- jmeter生成html格式的結果報告的路徑--> <property name="jmeter.result.html.dir" value="${basedirectory}" /> <!-- Name of test (without .jmx) --> <property name="test" value="Test"/> <!-- 生成的報告的字首--> <property name="ReportName" value="TestReport" /> <property name="jmeter.result.jtlName" value="${jmeter.result.jtl.dir}/${test}.jtl" /> <property name="jmeter.result.htmlName" value="${jmeter.result.html.dir}/${test}.html" /> <path id="xslt.classpath"> <fileset dir="${jmeter.home}/lib" includes="xalan*.jar"/> <fileset dir="${jmeter.home}/lib" includes="serializer*.jar"/> </path> <target name="run"> <antcall target="test" /> <antcall target="report" /> </target> <target name="test"> <taskdef name="jmeter" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask" /> <jmeter jmeterhome="${jmeter.home}" resultlog="${jmeter.result.jtlName}"> <!-- 宣告要執行的指令碼。"*.jmx"指包含此目錄下的所有jmeter指令碼--> <testplans dir="${basedirectory}" includes="${test}.jmx" /> </jmeter> </target> <target name="report"> <tstamp> <format property="report.datestamp" pattern="yyyy/MM/dd HH:mm" /></tstamp> <xslt classpathref="xslt.classpath" force="true" in="${jmeter.result.jtlName}" out="${jmeter.result.htmlName}" style="${jmeter.home}/extras/jmeter-results-detail-report_21.xsl"> <param name="dateReport" expression="${report.datestamp}"/> </xslt> <copy todir="${jmeter.result.html.dir}"> <fileset dir="${jmeter.home}/extras"> <include name="collapse.png" /> <include name="expand.png" /> </fileset> </copy> </target> </project>
-
安裝Jenkins:
- 本人安裝的是jenkins-1.651.1.msi安裝版,也可自行選擇安裝Jenkins其他版本;
- 雙擊jenkins.msi啟動安裝,安裝目錄選擇D:\Progrom Files\Jenkins,然後啟動成功。
- Jenkins服務預設埠為8080,如與其他服務衝突,可在..\Jenkins\jenkins.xml中修改預設埠,如我這裡修改為--httpPort=7033;
- Jenkins服務預設是自動啟動的,如果想修改為手動啟動,請自行管理->服務,找到Jenkins服務,修改為手動啟動即可。
- 開啟Jenkins,首次進入會預設讓你選擇安裝外掛(此處如果完全不清楚自己需要什麼外掛,建議全選)。外掛安裝完成之後,需要設定登入使用者,按照自己喜好設定即可。
- 進入Jenkins主頁:
- 系統設定->管理外掛->可選外掛,搜尋Performance plugin(Jmeter報告需要),安裝此外掛;
-
Jenkins設定Ant的環境變數:
- 系統設定->Global Tool Configuration,找到ant,新增Ant,輸入Ant的Name,安裝路徑;
-
Jenkins設定郵件:
- 按照如圖所示設定即可,本處設定的是QQ企業郵箱的服務,其他郵箱按照類似設定即可。
- 測試郵件傳送成功之後,Extended E-mail Notification參照上面的設定即可。(注意:必須配置,否則後期專案構建傳送郵件將失敗)
-
配置測試專案
-
新建測試專案(介面測試) :
在Jenkins首頁左邊 點選新建 -> 選擇"構建一個自由風格的軟體專案",輸入Item名稱(中英文不限,建議使用英文) –> 點選OK,進入你新建的測試專案的配置頁面;
-
專案配置步驟1:
a、描述:用於編寫該專案的介紹(請忽略);
b、丟棄舊的構建:這裡勾選上,為了避免多餘的構建日誌、臨時檔案佔磁碟空間,需要定期的清除過期檔案。例如這裡選擇儲存3天之內的構建檔案,最大儲存N個構建專案的檔案;
具體設定如下圖所示:
-
專案配置步驟2:
-
配置工作空間:
點選高階專案選項右側的高階 -> 勾選使用自定義的工作空間;
目錄填寫你的Jmeter安裝目錄\extras即可。說明:比如上面步驟中,大家的jmeter安裝目錄為D:\Progrom Files\apache-jmeter-2.13,則此處填寫D:\Progrom Files\apache-jmeter-2.13\extras;
(說明:設定工作目錄主要是ant構建時用到了該目錄下的build.xml檔案,以及的的jmx指令碼檔案、jtl檔案、html檔案存放在此處; 準確的來說,此工作目錄與jmeter沒有任何關係,只是初學為了避免干擾,這裡直接將工作空間與jmeter直接聯絡在了一起。)
-
配置工作空間:
-
專案配置步驟3:
- 原始碼管理,這裡不涉及,選擇none;
-
構建觸發器:選擇此專案構建的觸發條件,例如本專案的是為了實現介面的定時監控,於是選擇Build periodically(定期構建)。
注意:關於定期構建引數的說明:"* * * * *",總共有5個引數,分別代表分(0~59)、時(0~23)、天(1~31)、月(1~12)、周(0~7,0和7表示星期天);
-
構建 -> 增加構建操作 -> Execute Windows batch command ;
此處編寫刪除jtl檔案的命令(因為Jmeter執行jmx指令碼檔案,生成jtl報告檔案。如果存在同名的jtl檔案,並不會覆蓋,而是追加,所以每次構建執行jmeter指令碼檔案之前需要刪除jtl檔案):
del "D:\Progrom Files\Jenkins\jobs\apache-jmeter-2.13\extras"\***.jtl
-
專案配置步驟4:
Invoke Ant配置
- Ant Version 選擇之前在jenkins設定的ant;
-
Properties 填寫test=***,此處***為你的jmeter 檔名字(不帶.jmx)。
說明:此處test=***的原因,可以檢視工作目錄extras下的build.xml檔案中有這樣的一段程式碼:<property name="test" value="Test"/>,test變數的預設值是Test,我們Properties就是為了給build.xml檔案的變數重新賦值的。建議自行了解build.xml檔案的結構;
-
專案配置步驟5:
-
新增構建後操作Archive the artifacts,add a New report(JMeter),
填寫用於存檔的檔案"**/+++.html",這裡+++與你的jmx檔名一致;
填寫Report files: **/---.jtl,這裡---與你的jmx檔名一致;
- 新增構建後操作E-mail Notification
- 新增構建後操作Editable Email Notification,如圖
然後選擇 -> Advanced Settings... ,出現Triggers,這裡我們可以根據需要增加Triggers。例如本人增加了Failure – Still(持續失敗)的情況下郵件報警;
Recipient List :收件人的郵箱,用";"間隔
SubJect:郵件標題
Content: 郵件內容,可以按照HTML格式編寫。
如圖所示
-
新增構建後操作Archive the artifacts,add a New report(JMeter),
-
新建測試專案(介面測試) :
到這裡整套環境就搭建完成了,可以自行構建測試是否達到預期;