• 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:UsersAdministratorDesktop接口测试接口练习 esult"/>   -----(这里需要填写的是jtl测试结果保存的路径。)
    <!-- html测试结果存放路径 -->
    <property name="jmeter.result.html.dir" value="C:UsersAdministratorDesktop接口测试接口练习 esulthtml"/>   ---(这里需要填写的就是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:UsersAdministratorDesktop接口测试接口练习 eport" 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文件的代码是可以直接复制使用的,改成自己对应的路径就可以了。

  • 相关阅读:
    Vue less使用scope时渗入修改子组件样式
    Spring容器初始话原理图
    Java的动态代理
    Spring_xml和注解混合方式开发
    Spring_xml方式开发
    Spring入门初体验
    数论
    虚拟IP和IP漂移
    字符串hash + 二分答案
    字符串hash
  • 原文地址:https://www.cnblogs.com/star12111/p/13474008.html
Copyright © 2020-2023  润新知