1. 程式人生 > >Jenkins+Jmeter+Ant自動化整合環境搭建

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常用外掛下載地址:

  1. JDK安裝:
    1. 雙擊JDK安裝包,選擇安裝路徑(為了節省C盤系統盤空間,不建議選擇預設路徑。本人所有相關軟體全部安裝在 D:\Progrom Files目錄下,例如Jdk安裝在D:\Progrom Files\Java\jdk1.7.0_79路徑下);

    1. 配置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 之間有空格)

若如圖所示 顯示版本資訊 則說明安裝和配置成功。

  1. Jmeter安裝:
    1. 解壓apache-jmeter-2.13.zip到D:\Progrom Files目錄下。

    2. Jmeter外掛的安裝。解壓JMeterPlugins-Extras-1.3.0.zip、JMeterPlugins-Standard-1.3.0.zip,將對應ext目錄下的檔案拷貝到D:\Progrom Files\apache-jmeter-2.13\lib\ext目錄下;

    3. 配置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 之間有空格)

    若如圖所示 顯示版本資訊 則說明安裝和配置成功。

  2. 安裝Ant
    1. 解壓apache-ant-1.9.7-bin.zip到D:\Progrom Files目錄下;

    2. 配置Ant環境變數
      1. 新建以下環境變數:

        ANT_HOME:D:\Progrom Files\apache-ant-1.9.7,此為你的ANT安裝路徑;

        設定完成後,點選"確認"來儲存。

      2. 在環境變數PATH的最後面新增一下內容:

        ;%ANT_HOME%\bin 注意前面的分號,如果PATH中最後沒有分號";"的話要加上,有的話就可去除。

      3. 進入cmd命令視窗,在CMD視窗中輸入ant -version,敲擊回城鍵,會顯示出你安裝的ANT版本,如果成功顯示,說明你的配置應該是成功了.
    3. 本地除錯使用ant構建執行Jmeter,並且生成jtl、Html報告;
      1. jmeter預設儲存的是.csv格式的檔案,所以我們先要設定一下bin/jmeter.properties檔案內容,修改jmeter.properties檔案 jmeter.save.saveservice.output_format=xml;
      2. 將apache-jmeter-2.13\extras\ant-jmeter-1.1.1.jar拷貝到apache-ant-1.9.7\lib目錄下;
      3. 在\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列印的日誌訊息,定位問題;

      4. build檔案推薦設定:

      5. <!-- 這個是推薦build,至於原理,大家可以檢視ant-jmeter-1.1.1.jar原始碼 -->  
        
        
        


      6. <?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>
  3. 安裝Jenkins:
    1. 本人安裝的是jenkins-1.651.1.msi安裝版,也可自行選擇安裝Jenkins其他版本;
    2. 雙擊jenkins.msi啟動安裝,安裝目錄選擇D:\Progrom Files\Jenkins,然後啟動成功。
    3. Jenkins服務預設埠為8080,如與其他服務衝突,可在..\Jenkins\jenkins.xml中修改預設埠,如我這裡修改為--httpPort=7033;

    4. Jenkins服務預設是自動啟動的,如果想修改為手動啟動,請自行管理->服務,找到Jenkins服務,修改為手動啟動即可。

    5. 開啟Jenkins,首次進入會預設讓你選擇安裝外掛(此處如果完全不清楚自己需要什麼外掛,建議全選)。外掛安裝完成之後,需要設定登入使用者,按照自己喜好設定即可。
    6. 進入Jenkins主頁:

    1. 系統設定->管理外掛->可選外掛,搜尋Performance plugin(Jmeter報告需要),安裝此外掛;

    2. Jenkins設定Ant的環境變數:
      1. 系統設定->Global Tool Configuration,找到ant,新增Ant,輸入Ant的Name,安裝路徑;

    3. Jenkins設定郵件:
      1. 按照如圖所示設定即可,本處設定的是QQ企業郵箱的服務,其他郵箱按照類似設定即可。

      1. 測試郵件傳送成功之後,Extended E-mail Notification參照上面的設定即可。(注意:必須配置,否則後期專案構建傳送郵件將失敗)

    4. 配置測試專案
      1. 新建測試專案(介面測試) :

        在Jenkins首頁左邊 點選新建 -> 選擇"構建一個自由風格的軟體專案",輸入Item名稱(中英文不限,建議使用英文) –> 點選OK,進入你新建的測試專案的配置頁面;

      2. 專案配置步驟1:

        a、描述:用於編寫該專案的介紹(請忽略);

        b、丟棄舊的構建:這裡勾選上,為了避免多餘的構建日誌、臨時檔案佔磁碟空間,需要定期的清除過期檔案。例如這裡選擇儲存3天之內的構建檔案,最大儲存N個構建專案的檔案;

        具體設定如下圖所示:

      3. 專案配置步驟2:
        1. 配置工作空間:

          點選高階專案選項右側的高階 -> 勾選使用自定義的工作空間;

          目錄填寫你的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直接聯絡在了一起。)

      4. 專案配置步驟3:
        1. 原始碼管理,這裡不涉及,選擇none;
        2. 構建觸發器:選擇此專案構建的觸發條件,例如本專案的是為了實現介面的定時監控,於是選擇Build periodically(定期構建)。

          注意:關於定期構建引數的說明:"* * * * *",總共有5個引數,分別代表分(0~59)、時(0~23)、天(1~31)、月(1~12)、周(0~7,0和7表示星期天);

        3. 構建 -> 增加構建操作 -> Execute Windows batch command ;

          此處編寫刪除jtl檔案的命令(因為Jmeter執行jmx指令碼檔案,生成jtl報告檔案。如果存在同名的jtl檔案,並不會覆蓋,而是追加,所以每次構建執行jmeter指令碼檔案之前需要刪除jtl檔案):

          del "D:\Progrom Files\Jenkins\jobs\apache-jmeter-2.13\extras"\***.jtl

      5. 專案配置步驟4:

        Invoke Ant配置

        1. Ant Version 選擇之前在jenkins設定的ant;
        2. Properties 填寫test=***,此處***為你的jmeter 檔名字(不帶.jmx)。

          說明:此處test=***的原因,可以檢視工作目錄extras下的build.xml檔案中有這樣的一段程式碼:<property name="test" value="Test"/>,test變數的預設值是Test,我們Properties就是為了給build.xml檔案的變數重新賦值的。建議自行了解build.xml檔案的結構;

      6. 專案配置步驟5:
        1. 新增構建後操作Archive the artifacts,add a New report(JMeter),

          填寫用於存檔的檔案"**/+++.html",這裡+++與你的jmx檔名一致;

          填寫Report files: **/---.jtl,這裡---與你的jmx檔名一致;

        1. 新增構建後操作E-mail Notification

        1. 新增構建後操作Editable Email Notification,如圖

        然後選擇 -> Advanced Settings... ,出現Triggers,這裡我們可以根據需要增加Triggers。例如本人增加了Failure – Still(持續失敗)的情況下郵件報警;

        Recipient List :收件人的郵箱,用";"間隔

        SubJect:郵件標題

        Content: 郵件內容,可以按照HTML格式編寫。

        如圖所示

到這裡整套環境就搭建完成了,可以自行構建測試是否達到預期;