步骤:
1.安装ant,添加到环境变量(windows是将bin目录添加到path。cmd命令输入 ant -v 查看版本号)
(mac:brew install ant
ant –version)
ant的作用是打包成一个.war包
2.jmeter的目录 ....你的目录/apache-jmeter-4.0/extras下找到ant-jmeter-1.1.1.jar,把它copy到ant的lib目录下。
(windows为 apache-ant-1.10.0/lib , mac为:/usr/local/Cellar/ant/1.10.4/libexec/lib)
3.打开jmeter的bin目录下的jmeter.properties文件作如下修改:
4.build.xml文件:在“你的目录/apache-jmeter-4.0”下新建TestSuite文件夹。
然后在testSuite里面按照图片上面的新建文件夹。将jmeter测试脚本放入script里面
a.执行测试脚本
b.生成测试报告
c.自动发送邮件
<?xml version="1.0" encoding="UTF8"?>
<project name="ant-jmeter-test" default="run" basedir=".">
<property name="jmeterPath" value="你的目录\apache-jmeter-4.0"/> <!--jmeter的路径-->
<property name="mailhost" value="smtp.qq.com"/> <!--邮箱的协议-->
<property name="username" value="*********@qq.com"/> <!--邮箱账号-->
<property name="password" value="*********"/><!--邮箱密码-->这个是开启smtp服务的时候,系统给的密码。
<property name="mailfrom" value="**********@qq.com"/><!--由谁来发送-->
<property name="mail_to" value="******@hnair.com"/> <!--发送给谁,多个人用英文逗号分割-->
<property name="mailsubject" value="XX系统接口自动化测试报告"/><!--邮件主题-->
<property name="mail_port" value="587"/><!--端口号-->
<property name="message" value="Hi!请查收下,这是**后台系统接口自动化测试报告,如有任何疑问,请联系我,谢谢!"/><!--邮箱内容-->
<tstamp>
<format property="time" pattern="yyyyMMddhhmm" />
</tstamp>
<property name="jmeter.home" value="${jmeterPath}" />
<property name="jmeter.result.jtl.dir" value="${jmeterPath}\TestSuite\report\jtl" /><!--放性能测试报告的地址-->
<property name="jmeter.result.html.dir" value="${jmeterPath}\TestSuite\report\html" /><!--放测试报告的地址-->
<property name="htmlReportNameSummary" value="TestReport" />
<property name="jmeter.result.jtlName" value="${jmeter.result.jtl.dir}/${htmlReportNameSummary}${time}.jtl" />
<property name="jmeter.result.htmlName" value="${jmeter.result.html.dir}/${htmlReportNameSummary}${time}.html" />
<target name="run">
<antcall target="test" />
<antcall target="report" />
<antcall target="sendEmail" />
</target>
<!--执行接口测试-->
<target name="test">
<echo>执行接口自动化测试用例</echo>
<taskdef name="jmeter" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask" />
<jmeter jmeterhome="${jmeter.home}" resultlog="${jmeter.result.jtlName}">
<!--要执行的测试脚本-->
<testplans dir="${jmeterPath}\TestSuite\script" includes="cookie实战.jmx" /><!--写入要测试的脚本-->
<property name="jmeter.save.saveservice.output_format" value="xml"/>
</jmeter>
</target>
<!--解决报告中NAN字段显示问题-->
<path id="xslt.classpath">
<fileset dir="${jmeter.home}/lib" includes="xalan-2.7.2.jar"/>
<fileset dir="${jmeter.home}/lib" includes="serializer-2.7.2.jar"/>
</path>
<!--生成HTML测试报告-->
<target name="report">
<echo>生成接口自动化测试报告</echo>
<xslt classpathref="xslt.classpath"
force="true"
in="${jmeter.result.jtlName}" out="${jmeter.result.htmlName}"
style="${jmeter.home}/extras/jmeter-results-detail-report_21.xsl" /><!--生成的模版-这是详细的,指定在extras-->
<!--<param name="showData" expression="${show-data}"/>-->
<!--<param name="titleReport" expression="${ReportName}${time}"/>-->
<!--<param name="dateReport" expression="${ReportName}${time}"/>-->
<!--复制图片-->
<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">
<echo>发送自动化测试报告</echo>
<mail mailhost="${mailhost}"
ssl="ture"
user="${username}"
password="${password}"
mailport="${mail_port}"
subject="${mailsubject}"
messagemimetype="text/html"
tolist="${mail_to}">
<from address="${mailfrom}" />
<attachments>
<!--${jmeter.home}/TestCase/report/html/-->
<fileset dir="${jmeter.result.html.dir}">
<include name="${htmlReportNameSummary}${time}.html"/>
<include name="collapse.png" />
<include name="expand.png" />
</fileset>
</attachments>
<message>
${message}
</message>
</mail>
</target>
</project>
5.执行命令,将三个包先放入放入ant的lib下,activation.jar,commons-email-1.2.jar,mail.jar
执行以下的两个目录
cd 你的目录/apache-jmeter-4.0/TestSuite
ant
如果出现以下错误:
解决方法:打开腾讯邮箱,点击》设置----账户----POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务下面的POP3/SMTP服务 (如何使用 Foxmail 等软件收发邮件?) 已开启 | 关闭 发信息开启,然后会收到一个验证码,将验证码填入password中
6.可以在邮件里面收到报告,或者可以在report/html中查看报告