接口自动化测试框架:jmeter + ant + jenkins
本篇文章是自己结合网上的各个资料查阅得到的结果,发现网上好多细节都不足,所以自己在踩坑的情况下,重新梳理一遍,希望对大家有帮助!
关于jmeter、ant、jenkins的下载和安装流程,可以参考下面的链接
链接: https://www.cnblogs.com/uncleyong/p/10739519.html.
要想框架可以正常的运行最重要的就是build.xml的配置内容,下面主要讲一下配置文件踩的坑:
1.build.xml文件建议从apache-jmeter-5.1.1\extras中直接复制build.xml文件,然后修改里面的内容,不要自己新建否则格式会不对,用ant启动不了
2.build.xml里,生成文件里的时间,还有NAN的处理,网上好多资料都不完善,这是我找了好几个找到的,你只需要复制粘贴就可以用的,记得要改几个地方我也已经标记好
下面为所需的build.xml文件的内容
去博客设置页面,选择一款你喜欢的代码片高亮样式,下面展示同样高亮的 代码片
.
<?xml version="1.0" encoding="utf-8"?>
<project name="JmeterTest" default="all" basedir=".">
<tstamp>
<format property="time" pattern="yyyyMMddhhmm" />
</tstamp>
<!-- 需要改成自己本地的 Jmeter 目录-->
<property name="jmeter.home" value="E:\apache-jmeter-5.1.1" />
<!-- jmeter生成jtl格式的结果报告的路径-->
<property name="jmeter.result.jtl.dir" value="E:\uncleyong\result\jtl" />
<!-- jmeter生成html格式的结果报告的路径-->
<property name="jmeter.result.html.dir" value="E:\uncleyong\result\html" />
<!-- 生成的报告的前缀 -->
<property name="ReportName" value="TestReport" />
<property name="jmeter.result.jtlName" value="${jmeter.result.jtl.dir}/${ReportName}${time}.jtl" />
<property name="jmeter.result.htmlName" value="${jmeter.result.html.dir}/${ReportName}${time}.html" />
<!-- 接收测试报告的邮箱 -->
<property name="mail_to" value="chengqian@souche.com" />
<!-- 电脑地址 -->
<property name="ComputerName" value="chichi" />
<target name="all">
<antcall target="login" />
<antcall target="report" />
</target>
<target name="login">
<taskdef name="jmeter" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask" />
<jmeter jmeterhome="${jmeter.home}" resultlog="${jmeter.result.jtlName}">
<!-- 声明要运行的脚本。"*.jmx"指包含此目录下的所有jmeter脚本 -->
<testplans dir="E:\uncleyong\jmeter_script" includes="*.jmx" />
<property name="jmeter.save.saveservice.output_format" value="xml" />
</jmeter>
</target>
<path id="xslt.classpath">
<fileset dir="${jmeter.home}/lib" includes="xalan-2.7.2.jar"/>
<fileset dir="${jmeter.home}/lib" includes="serializer*.jar"/>
</path>
<target name="report">
<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="showData" expression="${show-data}"/>
<param name="titleReport" expression="${ReportName}${time}"/>
<param name="dateReport" expression="${ReportName}${time}"/>
</xslt>
<!-- 因为上面生成报告的时候,不会将相关的图片也一起拷贝至目标目录,所以,需要手动拷贝 -->
<copy todir="${jmeter.result.html.dir}">
<fileset dir="${jmeter.home}/extras">
<include name="collapse.png" />
<include name="expand.png" />
</fileset>
</copy>
</target>
<!-- 发送邮件 -->
</project>