一、安裝ant
1、ant 下載地址:https://ant.apache.org/bindownload.cgi
2、下載完成解壓到指定目錄下
3、配置ant 環境變量
- 新建系統變量 -ANT_HOME
- CLASSPATH 住家ant的lib包--%ANT_HOME%\lib
- path 增加 ant的bin目錄--%ANT_HOME%\bin
4、檢查ant是否安裝成功
ant -version
重要配置:
1)將 jmeter的extras目錄中ant-jmeter-1.1.1.jar包拷貝至ant安裝目錄下的lib目錄中
這一步操作使Ant運行時能夠找到"org.programmerplanet.ant.taskdefs.jmeter.JMeterTask"這個類,從而成功觸發JMeter腳本
2)修改Jmeter的bin目錄下jmeter.properties文件的配置:jmeter.save.saveservice.output_format=xml
3)ant發送郵件需要3個jar包:commons-email.jar、activation-1.1.1.jar、javax.mail.jar, 需要放在 ant 的 \lib 目錄下
4)build.xml 文件里面 ,style="${jmeter.home}/extras/jmeter.results.shanhe.me.xsl"> 是用來配置jmeter報告的樣式(jmeter.results.shanhe.me.xsl)
二、編寫build.xml文件
1 <?xml version="1.0" encoding="UTF-8"?> 2 3 <project name="ant-jmeter-test" default="run" basedir="."> 4 <tstamp> 5 <format property="time" pattern="yyyyMMddHHmm" /> 6 </tstamp> 7 <!-- 需要改成自己本地的 Jmeter 目錄--> 8 <property name="jmeter.home" value="E:\apache-jmeter-5.1.1" /> 9 <property name="report.title" value="惠商API接口測試報告"/> 10 11 <!-- QQ郵箱配置參數--> 12 <property name="mail_host" value="smtp.qq.com"/> 13 <property name="mail_port" value="465"/> 14 <property name="username" value="發件人信息"/> 15 <property name="password" value="先在QQ郵箱設置里開啟smtp服務,會獲得一個授權碼,此處填寫那個授權碼"/> 16 <property name="mail_from" value="發件人郵箱地址"/> 17 <property name="mail_to" value="收件人郵箱地址"/> 18 <property name="mailsubject" value="郵件主題"/> 19 <property name="message" value=郵件正文內容"/> 20 21 <!-- jmeter生成jtl格式的結果報告的路徑--> 22 <property name="jmeter.result.jtl.dir" value="E:\apache-jmeter-5.1.1\AutoTest\report" /> 23 <!-- jmeter生成html格式的結果報告的路徑--> 24 <property name="jmeter.result.html.dir" value="E:\apache-jmeter-5.1.1\AutoTest\report" /> 25 <!-- 生成的報告的前綴--> 26 <property name="jmeter.result.jtlName" value="${jmeter.result.jtl.dir}/${report.title}${time}.jtl" /> 27 <property name="jmeter.result.htmlName" value="${jmeter.result.html.dir}/${report.title}${time}.html" /> 28 <!-- 輸出生成的報告名稱和存放路徑--> 29 <echo message="${jmeter.result.jtlName}"/> 30 <echo message="${jmeter.result.htmlName}"/> 31 <echo message="${jmeter.result.html.dir}"/> 32 33 <target name="run"> 34 <antcall target="test"/> 35 <antcall target="report"/> 36 <antcall target="mail"/> 37 </target> 38 39 <target name="mail"> 40 <echo>發送測試報告</echo> 41 <mail mailhost="${mail_host}" 42 ssl="true" 43 user="${username}" 44 password="${password}" 45 mailport="${mail_port}" 46 subject="${mailsubject}" 47 messagemimetype="text/html" 48 tolist="${mail_to}" > 49 <from address="${mail_from}" /> 50 51 <attachments> 52 <fileset dir="${jmeter.result.html.dir}"> 53 <include name="${report.title}${time}.html" /> 54 </fileset> 55 </attachments> 56 57 <message> 58 ${message} 59 </message> 60 </mail> 61 62 </target> 63 64 <!--加載jar包,解決顯示時間問題--> 65 <path id="xslt.classpath"> 66 <fileset dir="${jmeter.home}/lib" includes="xalan*.jar"/> 67 <fileset dir="${jmeter.home}/lib" includes="serializer*.jar"/> 68 </path> 69 70 <target name="test"> 71 <taskdef name="jmeter" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask" /> 72 <jmeter jmeterhome="${jmeter.home}" resultlog="${jmeter.result.jtlName}"> 73 <!-- 聲明要運行的腳本。"*.jmx"指包含此目錄下的所有jmeter腳本--> 74 <testplans dir="E:\apache-jmeter-5.1.1\AutoTest\testScript" includes="hszspay.jmx" /> 75 76 <property name="jmeter.save.saveservice.output_format" value="xml"/> 77 </jmeter> 78 </target> 79 80 <target name="report"> 81 <tstamp> <format property="report.datestamp" pattern="yyyy-MM-dd HH:mm" /></tstamp> 82 <xslt 83 classpathref="xslt.classpath" 84 force="true" 85 in="${jmeter.result.jtlName}" 86 out="${jmeter.result.htmlName}" 87 style="${jmeter.home}/extras/jmeter.results.shanhe.me.xsl"> 88 <param name="dateReport" expression="${report.datestamp}"/> 89 <param name="titleReport" expression="${report.title}"/> 90 91 </xslt> 92 93 </target> 94 </project>
三、執行ant命令生成報告並發送郵件
打開cmd 命令,進入到build.xml 目錄下
執行 ant 命令
生成的報告文件夾:
報告內容:
收到的郵件:
四、window環境編寫一個bat腳本,可以自動執行
@ echo off %1 %2 ver|find "5.">nul&&goto :Admin mshta vbscript:createobject("shell.application").shellexecute("%~s0","goto :Admin","","runas",1)(window.close)&goto :eof :Admin echo "start" call ant -f "E:/apache-jmeter-5.1.1/AutoTest/build.xml" echo "end" pause