原文:https://www.cnblogs.com/chenchen-tester/p/6930200.html
build.xml
<?xml version="1.0" encoding="UTF-8"?> <project name="zhtx_chaoshi" default="report" basedir="."> <tstamp> <!--format property="time" pattern="yyyyMMddkkmm" /--> <format property="date" pattern="yyyy/MM/dd kk:mm:ss"/> <!--kk是24小時制,KK是12小時制--> </tstamp> <!-- 需要改成自己本地的 Jmeter 目錄--> <property name="jmeter.home" value="D:/apache-jmeter-3.1" /> <property name="report.title" value="Jmeter_zhtxAPITestReport"/> <!-- jmeter生成jtl格式的結果報告的路徑--> <property name="jmeter.result.jtl.dir" value="D:/Jenkins/workspace/超市自動下單/jtl" /> <!-- jmeter生成html格式的結果報告的路徑--> <property name="jmeter.result.html.dir" value="D:/Jenkins/workspace/超市自動下單/html" /> <!-- 生成的報告的前綴--> <!-- 生成的報告的名稱--> <property name="ReportName" value="DetailsReport" /> <property name="ReportName2" value="SummaryReport" /> <!--jtl的value值是D:\Jenkins\jmxReport\jtl\TestReport+yyyyMMddhhmm.jtl--> <!--html的value值是D:\Jenkins\jmxReport\html\TestReport+yyyyMMddhhmm.html--> <property name="jmeter.result.jtlName" value="${jmeter.result.jtl.dir}/${ReportName}.jtl" /> <property name="jmeter.result.htmlName" value="${jmeter.result.html.dir}/${ReportName}.html" /> <property name="jmeter.result.htmlName2" value="${jmeter.result.html.dir}/${ReportName2}.html" /> <!-- 工程引用包 --> <property name="lib.home" value="D:/apache-jmeter-3.1/xjar"/> <!--jmx文件存放位置--> <property name="jmxFile" value="D:/apache-jmeter-3.1/jmx"/> <!--項目初始化設置--> <target name="init" description="init" > <!--刪除jtl文件夾下生成的所有文件及文件夾包括空目錄,但不刪除根目錄--> <delete verbose="true" includeemptydirs="true" > <fileset dir="${jmeter.result.jtl.dir}" > <include name="**/*" /> </fileset> </delete> <!--刪除html文件夾下生成的所有文件及文件夾包括空目錄,但不刪除根目錄--> <delete> <fileset dir="${jmeter.result.html.dir}"> <include name="**/*"/> </fileset> </delete> <!--<delete dir="${classes.home}"/> <mkdir dir="${classes.home}"/>--> </target> <target name="test" depends="init"> <taskdef name="jmeter" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask" /> <jmeter jmeterhome="${jmeter.home}" resultlog="${jmeter.result.jtlName}"> <!-- 聲明要運行的腳本。"*.jmx"指包含此目錄下的所有jmeter腳本--> <testplans dir="${jmxFile}" includes="超市訂單online.jmx" /> <!--聲明生成的jtl文件是xml格式,否則會報錯 --> <property name="jmeter.save.saveservice.output_format" value="xml"/> </jmeter> </target> <path id="xslt.classpath"> <fileset dir="${lib.home}" includes="xalan*.jar"/> <fileset dir="${lib.home}" includes="serializer*.jar"/> </path> <target name="report" depends="test" > <xslt classpathref="xslt.classpath" force="true" in="${jmeter.result.jtlName}" out="${jmeter.result.htmlName}" style="${jmeter.home}/extras/jmeter.results.shanhe.me.xsl"> <param name="titleReport" expression="${report.title}"/> <param name="dateReport" expression="${date}"/> </xslt> <xslt classpathref="xslt.classpath" force="true" in="${jmeter.result.jtlName}" out="${jmeter.result.htmlName2}" style="${jmeter.home}/extras/jmeter-results-detail-report_21.xsl"> <param name="titleReport" expression="${report.title}"/> <param name="dateReport" expression="${date}"/> </xslt> <!-- 因為上面生成報告的時候,不會將相關的圖片也一起拷貝至目標目錄,所以,需要手動拷貝 --> <copy todir="${jmeter.result.html.dir}"> <fileset dir="${jmeter.home}/extras"> <include name="collapse.png" /> <include name="expand.png" /> </fileset> </copy> </target> </project> build.xml
修改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
配置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>
截圖如下