Ant的構建檔案build.xml 個人訂製版本
<?xml version="1.0" encoding="UTF-8"?>
<project name="jmeter-ant-jenkins-test" default="all" basedir="E:\apache-jmeter-5.4.3\result">
<tstamp>
<format property="time" pattern="yyyyMMddHHmmss" />
</tstamp>
<!-- 需要改成自己本地的 Jmeter 目錄-->
<property name="jmeter.home" value="E:\apache-jmeter-5.4.3" />
<!-- 指定需要執行的指令碼的存放目錄-->
<property name="script.home" value="E:\apache-jmeter-5.4.3\result\script" />
<!-- jmeter生成jtl格式的結果報告的路徑-->
<property name="jmeter.result.jtl.dir" value="E:\apache-jmeter-5.4.3\result\jtl" />
<!-- jmeter生成html格式的結果報告的路徑-->
<property name="jmeter.result.html.dir" value="E:\apache-jmeter-5.4.3\result\html" />
<!-- jmeter生成結果的報告字首 html名稱與jenkins,HTML directory to archive 設定一致,否則報告會出現404-->
<property name="ReportName" value="TestReport" />
<!-- jmeter生成的jtl結果檔案的名稱 -->
<property name="jmeter.result.jtlName" value="${jmeter.result.jtl.dir}/${ReportName}${time}.jtl" />
<!-- jmeter生成的html結果檔案的名稱 -->
<property name="jmeter.result.htmlName" value="${jmeter.result.html.dir}/${ReportName}${time}.html" />
<!-- 接收測試報告的郵箱-->
<property name="mail_from" value="[email protected]" />
<property name="mail_to" value="[email protected]" />
<!-- 指定ant-jmeter-1.1.1.jar 的位置-->
<path id="jmeter.classpath">
<fileset dir="${jmeter.home}\extras">
<include name="ant-jmeter*.jar">
</fileset>
</path>
<target name="all">
<antcall target="run" />
<antcall target="report" />
<antcall target="sendEmail" />
</target>
<target name="run">
<taskdef name="jmeter" classpathref="jmeter.classpath" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask" />
<jmeter jmeterhome="${jmeter.home}" resultlog="${jmeter.result.jtlName}">
<!-- 宣告要執行的指令碼 "*.jmx"包含此目錄下的所有jmeter指令碼-->
<testplans dir="E:\apache-jmeter-5.4.3\bin\TestCaseJMX"/>
<!-- 宣告ant執行jmeter時,傳入jmeter的屬性值,可以自定義-->
<property name="jmeter.save.saveservice.output_format" value="xml" />
<!-- 可以在執行ant命令時,通過-D屬性來傳入tn和ln的值-->
<property name="thread.num" value="${tn}" />
<property name="loop.num" value="${ln}" />
</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.jome}/extras/jmeter-results-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>
<!-- 傳送郵件-->
<target name="sendEmail">
<mail mailhost="smtp.qq.com" mailreport="587" subject="Test Report" messagemimetype="text/html" user="[email protected]" password="接收人的郵箱密碼"/>
<from address="${mail_from}">
<to address="${mail_to}">
</target>
</project>