jmeter+ant+jenkins自動化構建成功自動傳送郵件
阿新 • • 發佈:2019-01-08
二、修改build
build.xml 檔案內容如下,copy一份進去,相關地址需要修改
<?xml version="1.0" encoding="UTF-8"?>
<project name="ant-jmeter-test" default="run" basedir=".">
<tstamp>
<format property="time" pattern="yyyyMMddhhmm" />
</tstamp>
<!-- 需要改成自己本地的 Jmeter 目錄-->
<property name="jmeter.home" value="F:\apache-jmeter-3.0" />
<!-- 傳送給哪些人-->
<property name="mail_to" value="[email protected]"/>
<!-- 抄送給哪些人,多個用逗號隔開/-->
<!--property name="mail_cc" value="[email protected],[email protected]"/-->
<property name="report.title" value="介面測試報告"/>
<!-- jmeter生成jtl格式的結果報告的路徑-->
<property name="jmeter.result.jtl.dir" value="F:\apache-jmeter-3.0\demo\report\jtl" />
<!-- jmeter生成html格式的結果報告的路徑-->
<property name="jmeter.result.html.dir" value="F:\apache-jmeter-3.0\demo\report\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" />
<!--定義次build.xml要執行全部的任務-->
<target name="run">
<antcall target="test" />
<antcall target="report" />
<antcall target="mail" />
</target>
<!--第一個任務,執行test-->
<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="F:\apache-jmeter-3.0\demo" includes="*.jmx" />
<property name="jmeter.save.saveservice.output_format" value="xml"/>
</jmeter>
</target>
<!--引入外部jar包-->
<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="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>
<!--將控制檯輸出到文字中-->
<record name="${jmeter.result.html.dir}/${ReportName}${time}.txt" loglevel="info" append="no" action="start"/>
<!--執行第三個任務,傳送郵件-->
<target name="mail">
<!--讀取輸出的控制檯日誌檔案並寫入郵件正文-->
<loadfile property="email_content" srcFile="${jmeter.result.html.dir}/${ReportName}${time}.txt" encoding="UTF-8"/>
<loadfile property="output" srcFile="${jmeter.result.html.dir}/${ReportName}${time}.html" encoding="UTF-8"/>
<!-- 此處配置SMTP伺服器 POP3授權碼 傳送郵箱地址 埠 傳送郵箱主題-->
<mail tolist="${mail_to}" mailhost="smtp.163.com" mailport="25"
user="[email protected]" password="Zxc321181" subject="jmeter 測試報告${ReportName}${time}"
messagemimetype="text/html">
<from address="[email protected]" />
<fileset dir="${jmeter.result.html.dir}">
<include name="${ReportName}${time}.html"/>
</fileset>
<message>
這是用Ant自動傳送的測試報告
${ReportName}${time}
${output}
</message>
</mail>
</target>
</project>
需要修改的位置
三、jenkins構建,郵箱檢視郵件