使用Jmeter实现自动化测试2020.4.28
一、安装jdk
https://www.oracle.com/technetwork/java/javase/downloads/index.html
二、安装jmeter
https://jmeter.apache.org/
三、安装ant
https://ant.apache.org/bindownload.cgi
四、新建一个文件夹(build.xml和startRun.bat要放在同一目录执行)
配置文件jmeter+ant接口测试:https://pan.baidu.com/s/1g39lwbVVajBSYnf1N9Ohlg
startRun.bat
ant
build.xml代码
<?xml version="1.0" encoding="UTF-8"?> <project name="ant-jmeter-test" default="all" basedir="."> <tstamp> <format property="time" pattern="yyyyMMddHHmm" /> </tstamp> <!-- 需要改成自己本地的 Jmeter 目录--> <property name="jmeter.home" value="D:/apache-jmeter-2.13" /> <!-- jmeter生成jtl格式的结果报告的路径--> <property name="jmeter.result.jtl.dir" value="D:\wamp\www\jtl" /> <!-- jmeter生成html格式的结果报告的路径--> <property name="jmeter.result.html.dir" value="D:\wamp\www\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}.html" /> <echo message="${jmeter.result.jtlName}"/> <echo message="${jmeter.result.htmlName}"/> <echo message="${jmeter.result.html.dir}"/> <target name="all"> <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="D:/" 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-detail-report_21.xsl"> <param name="dateReport" expression="${report.datestamp}"/> </xslt> <!-- 因为上面生成报告的时候,不会将相关的图片也一起拷贝至目标目录,所以,需要手动拷贝,D:\apache-jmeter-2.13\extras下面的collapse.png和expand.png文件拷贝到D:\apache-jmeter-2.13目录下面 --> <copy todir="${jmeter.result.html.dir}"> <fileset dir="${jmeter.home}/extras"> <include name="collapse.png" /> <include name="expand.png" /> </fileset> </copy> </target> </project>
五、配置ant和jmeter
Ant配置:
1.注意:安装ant若报错找不到tool.jar,需要把java/lib下面的tools.jar文件拷贝到jre/lib下面
2.将\apache-jmeter-3.0\extras下面的ant-jmeter-1.1.1的jar包到ant的lib目录
3.确保build.xml文件中存在以下目录:
<property name="jmeter.result.jtl.dir" value="D:/Program Files/wamp/www/jtl" />
<!-- jmeter生成html格式的结果报告的路径-->
<property name="jmeter.result.html.dir" value="D:/Program Files/wamp/www/html" />
<!-- 声明要运行的脚本。"*.jmx"指包含此目录下的所有jmeter脚本-->
<testplans dir="D:/" includes="*.jmx" />
Jmeter配置:
1.将百度网盘该目录下面的jmeter-results-detail-report_21.xsl 文件,覆盖到D:\apache-jmeter-3.0\extras下面。
2.将\apache-jmeter-3.0\extras下面的两个图片expand.png和collapse.png复制一份到bin目录
六、运行
1.在运行的jmx脚本目录下面存放好需要运行的jmeter脚本
2.双击启动startRun.bat文件即可运行
七.安装wamp
讲生成的HTML测试报告文件放入www目录下面
启动wamp
访问http://192.168.30.50/html/TestReport.html
详细步骤:
1.在linux服务器上查看ant版本。
2.安装ant若报错找不到tool.jar,需要把java/lib下面的tools.jar文件拷贝到jre/lib下面
3.将\apache-jmeter-3.0\extras下面的ant-jmeter-1.1.1的jar包到ant的lib目录
4.将该目录下面的jmeter-results-detail-report_21.xsl 文件,覆盖到D:\apache-jmeter-3.0\extras下面
5.建立一个文件夹名字叫auth,build.xml和startRun.bat要放在同一文件夹中
6.检查修改build.xml配置文件
<property name="jmeter.result.jtl.dir" value="D:/Program Files/wamp/www/jtl" />
<!-- jmeter生成html格式的结果报告的路径-->
<property name="jmeter.result.html.dir" value="D:/Program Files/wamp/www/html" />
<!-- 生成的报告的前缀-->
<property name="ReportName" value="AuthTestReport" />
<!-- 声明要运行的脚本。"*.jmx"指包含此目录下的所有jmeter脚本-->
<testplans dir="D:/" includes="*.jmx" />
style="${jmeter.home}/extras/Auth-jmeter-results-detail-report_21.xsl">
7.在Jenkins创建一个文件夹名字叫Authtest,存放***.jmx测试脚本文件
8.在Jenkins创建一个目录 html\Auth 在Auth中自动生成存放AuthTestReport.html文件, 以及三张图片 collapse.png, expand.png, learntalogo.png
9.在Jenkins创建一个目录 jtl\Auth 在Auth中自动生成存放AuthTestReport201901071834.jtl文件
====================================================================================================================================
添加详细接口测试报告
1.下载jmeter.results.shanhe.me.xsl
2.放到项目目录中
3.修改build.xml文件,找到对应的位置添加下面两段
<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}${detail}.html" /> <xslt
classpathref="xslt.classpath" force="true" in="${jmeter.result.jtlNamedetail}" out="${jmeter.result.htmlNamedetail}" style="${admin.home}/admin-jmeter.results.shanhe.me.xsl"> <param name="dateReport" expression="${report.datestamp}"/>
</xslt>
生成的报告展示: