说明:Jmeter与ant的连接并用,直接出接口测试报告。
一、ant安装及配置环境变量
1、下载ant
地址:http://ant.apache.org/bindownload.cgi
下载好的文件:apache-ant-1.10.8-bin.tar.gz
2、将下载后的文件解压到指定的位置即可,我将文件解压后和jmeter放在一起了。
3、配置ant环境变量
打开.bash_profile,终端输入命令:open -e .bash_profile,并回车;
ANT_HOME=/Users/apple/Desktop/Jmeter/apache-jmeter-5.2.1/apache-ant-1.10.8
CLASSPATH增加配置:$ANT_HOME/lib
PATH为增加配置:$ANT_HOME%\bin
JMETER_HOME=/Users/apple/Desktop/Jmeter/apache-jmeter-5.2.1
ANT_HOME=/Users/apple/Desktop/Jmeter/apache-jmeter-5.2.1/apache-ant-1.10.8
JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-14.0.2.jdk/Contents/Home/
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JMETER_HOME/lib/ext/ApacheJMeter_core.jar:$JMETER_HOME/lib/jorphan.jar:$ANT_HOME/lib
PATH=$JAVA_HOME/bin:$PATH:.:$JMETER_HOME/bin:$PATH:.:$ANT_HOME/bin:$PATH
export JAVA_HOME
export CLASSPATH
export PATH
3、验证ant安装是否成功
首先,输入命令,是文件立即生效:source .bash_profile,并回车;
然后,输入命令,校验ant环境变量:ant -v,并回车;
出现版本信息,即安装成功。
二、ant配置jmeter(即ant与jmeter关联)
说明:即通过在终端输入命令,来调动执行jmeter脚本进行接口测试,并申生成测试报告。
1、配置库文件
将jmeter extras目录下的ant-jmeter-1.1.1.jar文件拷贝到ant安装目录下的lib文件夹中
2、配置文档:jmeter.properties
在jmeter/bin目录下,找到jmeter.properties文件,打开该文档并编辑,修改jmeter报告输出格式为xml。
改jmeter.save.saveservice.output_format=csv 为jmeter.save.saveservice.output_format=xml,并去掉前面的注释符号#
3、集成准备
1)新建文件夹
a、在jmeter的bin目录下新建文件夹test文件夹;
b、在test文件夹下新建smokeTest和smoke_report文件夹;
c、在smoke_report下新建html和jtl文件夹;
2)smokeTest文件夹下存放.jmx文件和build.xml文件
a、.jmx文件:即运行的要运行的脚本;
b、build.xml文件:即配置ant的编译文件(下边有方法);
3)smoke_report下的html和jtl文件夹
a、html文件夹:ant调jmeter脚本执行完成后,生成的测试报告保存在此文件夹中;
b、jtl文件夹:存放jtl格式报告,一般只看html文件夹的报告即可。
4、配置ant的编译文件build.xml
上文目录:二-2-2)-b 提到的ant的编译文件build.xml:
1)新建一个build.txt文本文件,将下面的脚本复制到文件中并保存;
<?xml version="1.0" encoding="UTF-8"?>
<project name="ant-jmeter-test" default="run" basedir=".">
<tstamp>
<format property="time" pattern="yyyyMMddhhmm" />
</tstamp>
<!-- 需要改成自己本地的 Jmeter 目录-->
<property name="jmeter.home" value="/Users/apple/Desktop/Jmeter/apache-jmeter-5.2.1" />
<!-- jmeter生成jtl格式的结果报告的路径-->
<property name="jmeter.result.jtl.dir" value="/Users/apple/Desktop/Jmeter/apache-jmeter-5.2.1/bin/test/smoke_report/jtl" />
<!-- jmeter生成html格式的结果报告的路径-->
<property name="jmeter.result.html.dir" value="/Users/apple/Desktop/Jmeter/apache-jmeter-5.2.1/bin/test/smoke_report/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" />
<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="/Users/apple/Desktop/Jmeter/apache-jmeter-5.2.1/bin/test/smokeTest" 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.jtlName}"
out="${jmeter.result.htmlName}"
style="${jmeter.home}/extras/jmeter-results-shanhe-me.xsl">
<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>
2)修改该文件中的部分配置
a、修改路径:jmeter安装路径、存放jtl和html格式测试报告路径、jmeter执行脚本存放路径、测试报告模板存放路径及“jmeter.save.saveservice.output_format”格式;
3)将build.txt文件改为build.xml文件格式,并将其放到集成准备的smokeTest文件夹下。
注:此build.xml文件是新建的,区分于apache-jmeter-5.2.1/extras文件夹下的build.xml文件,不要用其修改。
4)优化测试报告模版
说明:jmeter本身默认的测试报告展示的信息比较少,如果出错了,不是很方便定位问题,下面介绍优化方法:
a、下载style文件:jmeter.results.shanhe.me.xsl
b、把下载的文件放到Jmeter的extras目录下;
c、修改jmeter.properties文件,如下部分按照提供的修改;
jmeter.save.saveservice.data_type=true
jmeter.save.saveservice.label=true
jmeter.save.saveservice.response_code=true
# response_data is not currently supported for CSV output
jmeter.save.saveservice.response_data=true
# Save ResponseData for failed samples
jmeter.save.saveservice.response_data.on_error=false
jmeter.save.saveservice.response_message=true
jmeter.save.saveservice.successful=true
jmeter.save.saveservice.thread_name=true
jmeter.save.saveservice.time=true
jmeter.save.saveservice.subresults=true
jmeter.save.saveservice.assertions=true
jmeter.save.saveservice.latency=true
jmeter.save.saveservice.connect_time=true
jmeter.save.saveservice.samplerData=true
jmeter.save.saveservice.responseHeaders=true
jmeter.save.saveservice.requestHeaders=true
jmeter.save.saveservice.encoding=false
jmeter.save.saveservice.bytes=true
jmeter.save.saveservice.url=true
jmeter.save.saveservice.filename=true
jmeter.save.saveservice.hostname=true
jmeter.save.saveservice.thread_counts=true
jmeter.save.saveservice.sample_count=true
jmeter.save.saveservice.idle_time=true
d、检查jmeter/extras文件夹下的build.xml文件,改成下图样式;
优化测试结果报告参考文档
5、执行测试
1)打开终端,执行命令cd 路径到smokeTest文件夹下的build.xml文件所在路径;
2)输入ant run回车,执行测试脚本;
3)看到build successful,则说明执行测试脚本成功。
6、查看测试结果报告
在报告存放路径下查看jtl和html结果报告;
打开html文件,查看结果