一、准备工作
我们需要Llinux环境中搭建好JDK、Jmeter、Ant环境,进行相关配置才能生成自动化测试报告
- 安装JDK环境 参考Linux 环境安装之 JDK
- 安装Jmeter环境 参考Linux环境安装之Jmeter
- 安装Ant环境 参考Linux环境安装之Ant
二、ant和jmeter配置
1.将jmeter/extras目录下的ant-jmeter-1.1.1.jar 文件拷贝到ant安装目录下的lib文件夹中
cp ant-jmeter-1.1.1.jar /data/software/apache-ant-1.10.9/lib/
2.配置build.xml编辑文件,linux下注意文件路径的写法,用"/"
<?xml version="1.0" encoding="UTF-8"?>
<project name="ant-jmeter-test" default="run" basedir=".">
<tstamp>
<format property="time" pattern="_yyyy_MMdd_HHmmss" />
</tstamp>
<!-- 需要改成自己本地的 Jmeter 目录-->
<property name="jmeter.home" value="需要自定义填写jmeter的实际安装目录" />
<property name="report.title" value="接口测试"/>
<!-- jmeter生成jtl格式的结果报告的路径-->
<property name="result_dir" value="." />
<property name="jmeter.result.jtl.dir" value="${result_dir}/resultLog/jtl" />
<!-- jmeter生成html格式的结果报告的路径-->
<property name="jmeter.result.html.dir" value="${result_dir}/resultLog/html" />
<property name="detail" value="_detail" />
<!-- 生成的报告的前缀-->
<property name="ReportName" value="API_" />
<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="detail" value="_detail" />
<property name="jmeter.result.jtlNamedetail" value="${jmeter.result.jtl.dir}/${ReportName}${time}.jtl" />
<property name="jmeter.result.htmlNamedetail" value="${jmeter.result.html.dir}/${ReportName}${time}${detail}.html" />
<target name="run">
<antcall target="test" />
<antcall target="report" />
</target>
<target name="test">
<taskdef name="jmeter" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask" />
<jmeter jmeterhome="${jmeter.home}" resultlog="${jmeter.result.jtlName}">
<!-- 声明要运行的脚本"*.jmx"指包含此目录下的所有jmeter脚本-->
<testplans dir="${result_dir}/jmx" includes="*.jmx" />
<property name="jmeter.save.saveservice.output_format" value="xml"/>
</jmeter>
</target>
<path id="xslt.classpath">
<fileset dir="${jmeter.home}/lib" includes="xalan*.jar"/>
<fileset dir="${jmeter.home}/lib" includes="serializer*.jar"/>
</path>
<target name="report">
<tstamp> <format property="report.datestamp" pattern="yyyy/MM/dd HH:mm" /></tstamp>
<xslt
classpathref="xslt.classpath"
force="true"
in="${jmeter.result.jtlNamedetail}"
out="${jmeter.result.htmlNamedetail}"
style="${result_dir}/report_md/jmeter-results-detail-report_release.xsl">
<!--style 报告模版 -->
<!--style 报告模版 jmeter.results.shanhe.me.xsl -->
<param name="showData" expression="${show-data}"/>
<param name="titleReport" expression="接口自动化结果"/>
<param name="dateReport" expression="${report.datestamp}"/>
</xslt>
<!-- 因为上面生成报告的时候,不会将相关的图片也一起拷贝至目标目录,所以,需要手动拷贝 -->
<copy todir="${jmeter.result.html.dir}">
<fileset dir="${jmeter.home}/extras">
<include name="collapse.png" />
<include name="expand.png" />
</fileset>
</copy>
</target>
</project>
3.设置测试输出报告要输出的内容
jmeter默认保存的是.csv格式的文件,我们先要设置一下jmeter.properties 配置文件;
在jmeter/bin目录中,打开jmeter.properties,并修改以下内容:
# 在未编辑状态输入 /和检索的内容 敲回车,快速在文件中查找定位
# 把配置文件中信息按照以下内容去配置,如前面有#则去掉前面的注释符号#
jmeter.save.saveservice.output_format=xml
jmeter.save.saveservice.response_data=true
jmeter.save.saveservice.samplerData=true
在jmeter bin目录中,打开user.properties,在最底部添加如下内容:
jmeter.save.saveservice.output_format=xml
jmeter.save.saveservice.response_data=true
jmeter.save.saveservice.samplerData=true
jmeter.save.saveservice.requestHeaders=true
jmeter.save.saveservice.url=true
jmeter.save.saveservice.responseHeaders=true
注:填写以上信息可以解决生成报告详情显示不全以及接口请求内容和返回内容为空的情况
三、Jenkins配置
1.先确认Jenkins是否安装ant插件
路径:系统管理–>系统设置–>插件管理(未安装ant插件的话记得安装下)
2.配置Jenkins相关的环境变量
路径:系统管理–>系统设置–>全局工具配置
注:jdk和ant的配置方法一样
3.新建Job并进行配置
4.保存后构建即可
构建后找到存储HTML的文件的地方,就是所谓的check报告
问题汇总以及处理方案:
1、构建后报告样式不加载
路径:系统管理–>脚本命令行中输入以下内容,点击运行后,重新构建job生成新的报告就可以了
System.setProperty("hudson.model.DirectoryBrowserSupport.CSP","") # 点右下角的 运行 按钮
2.执行的时候报错找不到jmeter,主要原因就是第二步的第1步骤没有执行对导致的
1.将jmeter/extras目录下的ant-jmeter-1.1.1.jar 文件拷贝到ant安装目录下的lib文件夹中
注:mac通过brew安装的ant,通过以下命令可以找到具体的安装路径
brew list ant
文章未完。。等待后续补充