持續集成(CI):Jmeter+Ant+Jenkins定時構建


  這里Jenkins的安裝部署以及工程項目的整體配置不做贅述,其它博文已經說明,這里主要是贅述Ant的相關配置,build.xml文件配置以及項目中的部分配置

一、build.xml

  在Ant的安裝目錄下放入已經配置好的build.xml文件

  然后在Jmeter的安裝目錄下新建一個層級文件夾work/resultLog,在resultLog目錄下分別創建jtl和html目錄

  build.xml文件內容如下:

<?xml version="1.0" encoding="UTF-8"?>
<project name="接口性能監控" default="all" basedir=".">  
 <tstamp>
        <format property="time" pattern="yyyyMMddhhmm" />
    </tstamp>
    <property name="encoding" value="UTF-8" />
    <!-- 需要改成自己本地的 Jmeter 目錄-->  
    <property name="jmeter.home" value="G:/apache-jmeter-5.2" />
    <property name="report.title" value="接口性能監控"/>
    <!-- jmeter生成jtl格式的結果報告的路徑--> 
    <property name="jmeter.result.jtl.dir" value="${jmeter.home}/work/resultLog/jtl" />
    <!-- jmeter生成html格式的結果報告的路徑-->
    <property name="jmeter.result.html.dir" value="${jmeter.home}/work/resultLog/html" />
    <!-- 生成的報告的前綴-->  
    <property name="ReportName" value="TestReport" />
    <property name="jmeter.result.jtlName" value="${jmeter.result.jtl.dir}/${ReportName}${time}.jtl" />
    <property name="jmeter.result.htmlName" value="${jmeter.result.html.dir}/${ReportName}${time}.html" />

    <target name="all">
        <antcall target="test" />
        <antcall target="report" />
        <antcall target="mail" />
    </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="${jmeter.home}/bin/jmeter_scripts" includes="*.jmx" />
            
            <property name="jmeter.save.saveservice.output_format" value="xml"/>
        </jmeter>
    </target>
        
    <path id="xslt.classpath">
        <fileset dir="${jmeter.home}/lib" includes="xalan*.jar"/>
        <fileset dir="${jmeter.home}/lib" includes="serializer*.jar"/>
    </path>


    <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="showData" expression="${show-data}"/>

              <param name="dateReport" expression="${report.datestamp}"/>
              <param name="titleReport" expression="${report.title}:${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>
    <property name="mail_from" value="發送郵件的地址" />
    <property name="password" value="郵箱密碼" />
    <!--mail_to:發送列表,多個之間逗號間隔 -->
    
    <property name="mail_to" value="接收郵件地址" /> 
    <property name="mailport" value="25" />
    <!--郵箱需要開通smtp服務-->
    <property name="mailhost" value="smtp郵件服務器地址" />

    <target name="mail">
        
        <loadfile property="report" srcFile="${jmeter.result.htmlName}" encoding="${encoding}" />
        <mail from="${mail_from}" tolist="${mail_to}" mailport="${mailport}" mailhost="${mailhost}" user="${mail_from}" password="${password}" subject="TestReport-${ant.project.name}" messagemimetype="text/html">
            <message>
                                本輪構建的結果如下:
                                ${report}                               
                    </message>
        </mail>
    <delete file="${jmeter.result.htmlName}" />
    </target>
</project>

  在build.xml文件中我們要特別注意以下配置項(關系到是否能執行成功):

  • jmeter.home  值為Jmeter的安裝目錄
  • jmeter.result.jtl.dir & jmeter.result.html.dir  值對應的路徑建議提前手動創建
  • ${jmeter.home}/bin/jmeter_scripts  目錄下的文件名要與被測的性能測試腳本名稱保持一致
  • mail_from  發送方郵箱地址
  • password  發送方的郵箱密碼(注意:如果是qq郵箱則為授權碼,並且需要開啟smtp郵箱服務)
  • mail_to  接收方郵箱地址(多個地址用英文逗號相隔)
  • mailhost  郵箱服務器地址
  • mailport  郵箱服務器端口

二、Ant配置

  在Jenkins中,Manage Jenkins—>Global Tool Configuration—>Ant下配置Ant參數,配置完成后點擊保存

三、工程創建

1.創建一個自由風格的項目

2.構建配置

  增加構建步驟—>Invoke Ant,配置對應的參數后,點擊保存

 

3.開始構建

  在剛創建的項目下點擊Build Now開始構建,並等待構建完成

4.查看報告

1.測試報告文件

2.測試報告郵件


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM