jmeter+ant 接口自动化测试二

上篇随笔中记录了ant的环境配置。

这篇随笔继续记录ant配置文件build.xml的编写及测试报告的生成。

1.配置ant的编译文件build.xml
新建的txt文件,并将此文件改名为build.xml,修改文档里的内容
注意:jmeter的extras文件下也有个build.xml文档,不要用这个文档来改,是两回事,这里的build文档是自己新建。
   代码中不能存在tab键否则会编译失败,要执行的脚本也要指定好,否则也会有问题,我就在这踩坑了,改了好久。。。。
按实际情况修改如下文档:

<?xml version="1.0" encoding="UTF-8"?>
<project name="ant-jmeter" default="all" basedir=".">
<property name="jmeterPath" value="D:\自动化工具\apache-jmeter-5.3"/>   ----这里填写的是jmeter的安装路径。
<property name="mail_host" value="smtp.qq.com"/>
<property name="mail_port" value="465"/>
<property name="username" value="150000@qq.com"/>
<property name="password" value="rryebmmrzksybbfe"/>
<property name="mail_from" value="150000@qq.com"/>
<property name="mail_to" value="100000@qq.com"/>
<property name="mailsubject" value="后台管理系统接口"/>
<property name="message" value="Dear all,以下是DLink接口测试报告,有任何疑问,请联系我,谢谢!"/>   ----这块深色字体的区域是填写的邮件,自动发送测试报告到邮箱。可以不填写的。

<tstamp><format property="time" pattern="yyyyMMddhhmm" /></tstamp>

<!-- jmeter环境配置 -->
<property name="jmeter.home" value="${jmeterPath}"/>
<!-- jtl测试结果存放路径 -->
<property name="jmeter.result.jtl.dir" value="C:\Users\Administrator\Desktop\接口测试\接口练习\result"/>   -----(这里需要填写的是jtl测试结果保存的路径。)
<!-- html测试结果存放路径 -->
<property name="jmeter.result.html.dir" value="C:\Users\Administrator\Desktop\接口测试\接口练习\result\html"/>   ---(这里需要填写的就是html测试报告保存的路径)
<property name="htmlReportNameSummary" value="后台管理系统接口"/>  -----(这里填写的是测试报告的名称)
<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="all">
<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}">
<!-- 声明要运行的脚本“*.jmx”指包含此目录下的所有jmeter脚本-->
<testplans dir="C:\Users\Administrator\Desktop\接口测试\接口练习\report" includes="牛刀小试接口.jmx" />       ----(这里是需要修改的,填写的是需要测试的jmx路径,如果需要测试所有的jmx,就可以写成:*jmx.如果只需要测试其中某个jmx文件,就可以写成文件名.jmx.例如:牛刀小试接口.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>

<target name="report">
<echo>生成接口自动化测试报告</echo>
<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="titleReport" expression="${mailsubject}${time}"/>
<param name="dateReport" expression="${report.datestamp}"/>
</xslt>

<!-- 因为上面生成报告的时候,不会将相关的图片也一起拷贝至目标目录,所以,需要手动拷贝 -->
<copy file="${jmeter.home}/extras/expand.png" tofile="${jmeter.result.html.dir}/expand.png" />
<copy file="${jmeter.home}/extras/collapse.png" tofile="${jmeter.result.html.dir}/collapse.png" />

</target>

<target name="sendEmail">
<echo>发送测试报告</echo>
<mail mailhost="${mail_host}"
ssl="true"
user="${username}"
password="${password}"
mailport="${mail_port}"
subject="${mailsubject}"
messagemimetype="text/html"
tolist="${mail_to}" >
<from address="${mail_from}" />

<attachments>
<fileset dir="${jmeter.result.html.dir}">
<include name="${htmlReportNameSummary}${time}.html" />
<include name="${htmlReportNameSummary}${time}.collapse.png" />
<include name="${htmlReportNameSummary}${time}.expand.png" />
</fileset>
</attachments>

<message>
${message}
</message>
</mail>
</target>
</project>

 

2、验证配置,执行构建测试

将之前的jmeter的脚本保存,并将build.xml配置文件放在与测试脚本相同的目录下,我的目录如下:

4.5、执行测试

在build.xml所在目录打开命令窗口,输入cmd,然后输入ant 回车,执行测试

4.6查看测试报告

在报告输出存放路径下查看是否有jtl和html结果报告,存放路径在build文档中也有

 

打开html文档,测试结果展现了执行的用例名称、成功率、用例执行时间等结果参数

 

 

如上,我们就可以得到我们jmeter中测试的接口的测试报告了。

当然了,通过jmeter批处理也可以达到相同的目的。只是方式不同而已。

 

总结:ant 的build xml 文件的配置中,最主要的几点就是:jtl文件的保存路径,html文件的保存路径,jmeter的安装路径,我们要执行的jmx的存放路径,及我们要执行的jmx文件的名称,如果build xml所有目录的jmx文件全部都要执行的话,就使用:*jmx这样注明就可以了。

 

现在回头看看,ant配置也不是很复杂,就是先配置环境,然后配置build xml 文件就好了。

我随笔中的配置build xml文件的代码是可以直接复制使用的,改成自己对应的路径就可以了。

 

posted @ 2020-08-11 10:22  知识在于点滴的积累  阅读(322)  评论(0编辑  收藏  举报