Jenkins+Jmeter+Ant自動化集成及郵件正文以html輸出


一、工具的安裝與環境變量配置

1、依次安裝Jenkins+Jmeter+Ant,具體安裝步驟,此文不再詳述

2、配置Jmeter&ant環境變量

    Jmeter變量:

驗證是否配置成功:cmd窗口非jmeter安裝目錄,輸入jmeter.bat可打開jmeter程序,說明配置成功

 

ant變量:

驗證是否配置成功,cmd窗口輸入ant -version,返回如圖所示,表明配置成功

 二、編寫Jmeter腳本和build.xml文件

1、編寫Jmeter腳本

2、編寫build.xml文件,內如如下,

ps:需要下載依賴jar包:xalan*.jar,serializer*.jar並復制到ant安裝目錄下的lib目錄下;下載jmeter.results.shanhe.me.xsl文件並復制到jmeter的extras目錄下,優化測試報告顯示

 1 <?xml version="1.0" encoding="UTF-8"?>  
 2   
 3 <project name="zhtx_chaoshi" default="report" basedir="."> 
 4     <tstamp>  
 5         <!--format property="time" pattern="yyyyMMddkkmm" /--> 
 6         <format property="date" pattern="yyyy/MM/dd kk:mm:ss"/>
 7   <!--kk是24小時制,KK是12小時制-->        
 8     </tstamp> 
 9     <!-- 需要改成自己本地的 Jmeter 目錄-->  
10     <property name="jmeter.home" value="D:/apache-jmeter-3.1" />
11     <property name="report.title" value="Jmeter_zhtxAPITestReport"/>    
12     <!-- jmeter生成jtl格式的結果報告的路徑-->  
13     <property name="jmeter.result.jtl.dir" value="D:/Jenkins/workspace/超市自動下單/jtl" />  
14     <!-- jmeter生成html格式的結果報告的路徑-->  
15     <property name="jmeter.result.html.dir" value="D:/Jenkins/workspace/超市自動下單/html" />  
16     <!-- 生成的報告的前綴-->
17     <!-- 生成的報告的名稱-->     
18     <property name="ReportName" value="DetailsReport" />
19     <property name="ReportName2" value="SummaryReport" />
20     <!--jtl的value值是D:\Jenkins\jmxReport\jtl\TestReport+yyyyMMddhhmm.jtl-->    
21     <!--html的value值是D:\Jenkins\jmxReport\html\TestReport+yyyyMMddhhmm.html-->    
22     <property name="jmeter.result.jtlName" value="${jmeter.result.jtl.dir}/${ReportName}.jtl" />  
23     <property name="jmeter.result.htmlName" value="${jmeter.result.html.dir}/${ReportName}.html" />
24     <property name="jmeter.result.htmlName2" value="${jmeter.result.html.dir}/${ReportName2}.html" />
25 
26     
27         <!-- 工程引用包 -->    
28         <property name="lib.home" value="D:/apache-jmeter-3.1/xjar"/>
29         <!--jmx文件存放位置-->
30         <property name="jmxFile" value="D:/apache-jmeter-3.1/jmx"/>
31          
32     <!--項目初始化設置-->
33       <target name="init" description="init" >
34       <!--刪除jtl文件夾下生成的所有文件及文件夾包括空目錄,但不刪除根目錄-->
35          <delete verbose="true" includeemptydirs="true" >
36             <fileset dir="${jmeter.result.jtl.dir}" >
37                   <include name="**/*" />
38             </fileset>
39          </delete>
40          <!--刪除html文件夾下生成的所有文件及文件夾包括空目錄,但不刪除根目錄-->
41          <delete>
42             <fileset dir="${jmeter.result.html.dir}">
43                  <include name="**/*"/>
44             </fileset>
45          </delete>
46          <!--<delete dir="${classes.home}"/>
47          <mkdir dir="${classes.home}"/>-->
48       </target>
49       
50     <target name="test" depends="init">  
51         <taskdef name="jmeter" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask" />  
52         <jmeter jmeterhome="${jmeter.home}" resultlog="${jmeter.result.jtlName}">  
53             <!-- 聲明要運行的腳本。"*.jmx"指包含此目錄下的所有jmeter腳本-->  
54             <testplans dir="${jmxFile}" includes="超市訂單online.jmx" />
55             <!--聲明生成的jtl文件是xml格式,否則會報錯 -->
56             <property name="jmeter.save.saveservice.output_format" value="xml"/>            
57         </jmeter>  
58     </target>  
59     <path id="xslt.classpath">
60         <fileset dir="${lib.home}" includes="xalan*.jar"/>     
61         <fileset dir="${lib.home}" includes="serializer*.jar"/>
62     </path>
63     
64     <target name="report" depends="test" >   
65     
66         <xslt 
67               classpathref="xslt.classpath"
68               force="true"
69               in="${jmeter.result.jtlName}"  
70               out="${jmeter.result.htmlName}"  
71               style="${jmeter.home}/extras/jmeter.results.shanhe.me.xsl">
72               <param name="titleReport" expression="${report.title}"/>
73               <param name="dateReport" expression="${date}"/>              
74          </xslt>
75          <xslt 
76               classpathref="xslt.classpath"
77               force="true"
78               in="${jmeter.result.jtlName}"  
79               out="${jmeter.result.htmlName2}"
80               style="${jmeter.home}/extras/jmeter-results-detail-report_21.xsl">
81               <param name="titleReport" expression="${report.title}"/>
82               <param name="dateReport" expression="${date}"/>              
83          </xslt>
84         <!-- 因為上面生成報告的時候,不會將相關的圖片也一起拷貝至目標目錄,所以,需要手動拷貝 -->  
85         <copy todir="${jmeter.result.html.dir}">  
86             <fileset dir="${jmeter.home}/extras">  
87                 <include name="collapse.png" />  
88                 <include name="expand.png" />  
89             </fileset>  
90         </copy>  
91     </target>
92     
93       
94        
95 </project>  
build.xml

 

 三、編輯配置文件

1、ant-jmeter-1.1.1.jar復制到jmeter的extras目錄下

2、修改D:\apache-jmeter-3.1\bin下的jmeter.properties屬性文件

# assertion_results_failure_message only affects CSV output
jmeter.save.saveservice.assertion_results_failure_message=true
#
# legitimate values: none, first, all
#jmeter.save.saveservice.assertion_results=none
#
jmeter.save.saveservice.data_type=true
jmeter.save.saveservice.label=true
jmeter.save.saveservice.response_code=true
#response_data is not currently supported for CSV output
jmeter.save.saveservice.response_data=true
#Save ResponseData for failed samples
jmeter.save.saveservice.response_data.on_error=false
jmeter.save.saveservice.response_message=true
jmeter.save.saveservice.successful=true
jmeter.save.saveservice.thread_name=true
jmeter.save.saveservice.time=true
jmeter.save.saveservice.subresults=true
#jmeter.save.saveservice.assertions=true
jmeter.save.saveservice.latency=true
jmeter.save.saveservice.connect_time=true
jmeter.save.saveservice.samplerData=true
jmeter.save.saveservice.responseHeaders=false
jmeter.save.saveservice.requestHeaders=true
jmeter.save.saveservice.encoding=false
jmeter.save.saveservice.bytes=true
# Only available with HttpClient4
jmeter.save.saveservice.sent_bytes=true
jmeter.save.saveservice.url=false
jmeter.save.saveservice.filename=false
jmeter.save.saveservice.hostname=true
jmeter.save.saveservice.thread_counts=true
jmeter.save.saveservice.sample_count=false
jmeter.save.saveservice.idle_time=true
jmeter.properties

 

3、打開jenkins,安裝所需插件並創建job

 3.1、安裝所需插件Email Extension Plugin,發送郵件

        方法一:進入系統管理-管理插件--可選插件,安裝

方法二:官網下載插件,然后進入進入系統管理-管理插件--高級設置,選擇上傳已下載好的插件

3.2 創建job,如圖所示,job名字自定義

配置job

配置Editable Email Notification

設置發送郵件觸發器

 

進入jenkins系統設置下,編輯郵件配置,如圖所示

郵件正文內容如下:

<!DOCTYPE html>  
<html>  
<head>  
<meta charset="UTF-8">  
<title>${PROJECT_NAME}-第${BUILD_NUMBER}次構建日志</title>  
</head>  
  
<body size="4" leftmargin="8" marginwidth="0" topmargin="8" marginheight="4"  
    offset="0">  
    <table width="95%" cellpadding="0" cellspacing="0"  
        style="font-size: 20pt; font-family: Tahoma, Arial, Helvetica, sans-serif">  
        <tr>  
            <td>(本郵件是程序自動下發的,請勿回復!)</td>  
        </tr>  
        <tr>  
            <td><h2>  
                    <font color="#0000FF">構建狀態 - ${BUILD_STATUS}</font>  
                </h2></td>  
        </tr>  
        <tr>  
            <td><br />  
            <b><font color="#0B610B">構建信息</font></b>  
            <hr size="3" width="100%" align="center" /></td>  
        </tr>  
        <tr>  
            <td>  
                <ul>  
                    <li>項目名稱 : ${PROJECT_NAME}</li>  
                    <li>構建編號 : 第${BUILD_NUMBER}次構建</li>  
                    <li>觸發原因: ${CAUSE}</li>  
                    <li>構建日志: <a href="${BUILD_URL}console">${BUILD_URL}console</a></li>  
                    <li >變更集:${JELLY_SCRIPT,template="html"}</a></li>  
                    <li>SummaryReport:${FILE, path="D:/Jenkins/workspace/超市自動下單/html/SummaryReport.html"}
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"></a></li>  
                     
                </ul>
                    <hr size="3" width="100%" align="center" />
            </td>  
        </tr>  
       
         
    </table>  
</body>  
</html>
郵件正文內容

 

 到此,環境搭建成功,接下來構建查看結果顯示

四、構建

1、選擇創建的job,選擇構建

 

查看構建日志

構建成功,自動發送測試報告郵件,截圖如下

 


免責聲明!

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



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