准备工作:
1.java的运行环境正常,及运行java -version、javac -version能正常输出java版本;
2.ant的运行环境正常,使用ant需要配置环境变量,编辑/etc/profile,在结尾处添加:
export ANT_HOME="/export/servers/ant"
export PATH="/export/servers/ant/bin":$PATH
保存退出后,执行命令source /etc/profile使环境变量即可生效。
3.将JMeter所在目录下extras子目录里的ant-JMeter-1.1.1.jar复制到Ant所在目录lib子目录之下,这样Ant运行时才能找到"org.programmerplanet.ant.taskdefs.jmeter.JMeterTask"这个类,从而成功触发JMeter脚本
配置build.xml:
将本猿编写的jmetertool.tar.gz上传到服务器并解压,编辑其中的build.xml:
<project name="autotest" default="all" basedir="."> <!-- 需要改成自己本地的 Jmeter 目录--> <property name="jmeter.home" value="/export/servers/jmeter"/> <!-- jmeter生成jtl格式的结果报告的路径--> <property name="jmeter.result.jtl.dir" value="${basedir}/jtl" /> <!-- jmeter生成html格式的结果报告的路径--> <property name="jmeter.result.html.dir" value="${basedir}/html" /> <!-- jmeter生成csv格式的结果报告的路径--> <property name="jmeter.result.csv.dir" value="${basedir}/csv" /> <!-- 编译后class文件目录 --> <property name="classes" value="${basedir}/classes"/> <!-- 生成的报告的前缀--> <property name="ReportName" value="TestTomNgx"/> <!-- 参数--> <property name="threads1" value="5" /> <property name="threads2" value="5" />
修改其中的jmeter目录一定要修改成你本地所在的目录,根据需要修改ReportName以及线程数。
<jmeter jmeterhome="${jmeter.home}" resultlog="${jmeter.result.jtl.dir}/${ReportName}${time}.jtl"><testplans dir="${basedir}" includes="test.jmx"/>
上传被测的jmx文件到当前目录,并修改build.xml中的jmx文件名。
为了能够动态修改压测的线程数,我们使用vi命令打开被测的jmx文件:
<stringProp name="ThreadGroup.num_threads">${__P(request.threads1)}</stringProp>
将线程数设置项改为该参数,名字与build.xml中的对应即可。
<jmeter jmeterhome="${jmeter.home}" resultlog="${jmeter.result.jtl.dir}/${ReportName}${time}.jtl"> <testplans dir="${basedir}" includes="testbaidu.jmx"/> <property name="jmeter.save.saveservice.output_format" value="csv"/> <property name="jmeter.save.saveservice.response_message" value="false" /> <jvmarg value="-Xincgc"/> <jvmarg value="-Xms1024m"/> <jvmarg value="-Xmx1024m"/> <property name="request.threads1" value="${threads1}"/> <property name="request.threads2" value="${threads2}"/>
参数 ${threads1}、${threads2}当前默认值是5个线程,可自行修改。
开始压测:
做完上面的工作,运行命令ant或者ant -Dthreads=8 -Dthreads=3即可,会自动启动jmeter进行压测,jmeter运行完毕后,会自动执行将生成的jtl文件分析为csv文件的工作,执行完毕后会有类似如下输出:
同时当前目录会自动创建jtl、html、csv三个文件夹:
查看结果:
那么问题来了,我们怎么查看压测的结果呢?很简单,在当前机器上配置一个tomcat,将当前的目录(我的是/export/servers/jmeter/script)配置为tomcat的虚拟目录(注意不要配置到html文件夹,而应该配置到html的上一层,否则style里的js无法加载),在tomcat的web.xml中找到
<init-param>
<param-name>listings</param-name>
<param-value>true</param-value>
</init-param>
设置为true以开启目录浏览功能。好了,我们访问该tomcat即可,http://ip:port/html。
每执行一次测试,都会自动建立一个文件夹,点进相应的文件夹,有几个接口就会html,点击相应的html我们就可以看到图表方式的TPS、响应时间等。
批量定时运行:
使用linux的crontab命令即可,crontab -e 每行添加一条ant命令例如:
30 1 11 * * ant -Dthreads1=8 Dthreads2=6
30 2 11 * * ant -Dthreads1=16 Dthreads2=12
或者使用at命令也很方便,从此再也不用因为加班到很晚而得罪老婆大人了,第二天早上来打开浏览器看结果就行。
如果需要多机负载的话,在<jmeter jmeterhome="${jmeter.home}" runremote="true" resultlog="${jmeter.result.jtl.dir}/${ReportNam
e}${time}.jtl">
然后修改jmeter/bin目录下的jmeter.propties即可
PS:如果运行到convert2csv这个步骤报数组越界错误,则需要去看看你生成的jtl文件第一行是不是加上了标题,如果有则删掉第一行标题即可。第二如果生成的图表没有任何数据,则去看看你的jtl第七列是不是代表请求是否成功的true or false,如果不是那要么去修改jmeter.properties的生成jtl的列选项,要么修改源码中的列数,在ant compile就好了。
相关推荐
文档详细记录了jenkins+ant+jmeter自动化接口测试框架搭建的过程步骤,供大家参阅。
Jmeter接口性能及自动化测试实战(基于5.2.1版本),完整版视频教程下载!课程的设计是零基础入门,而不必事先了解Jmeter或性能测试。 课程完成后,你将掌握如何使用Jmeter设计性能测试用例,并可以运用到实际工作中...
性能自动化测试(基于jmeter+jenkins+ant+tomcat),亲测可以顺利完成
jmeter+ant接口自动化测试的报告模板 报告中显示: 执行概述:请求数量、失败、成功率、平均响应时间、响应小于0.5s的请求数量,0.5-1s的请求数量,大于1s的请求数量; 请求接口列表:接口描述、method、url、结果、...
《零成本实现Web性能测试:基于Apache JMeter》是一本关于Web性能测试的实战书籍,读者朋友们在认真阅读完《零成本实现Web性能测试:基于Apache JMeter》后,相信能够将所学知识应用到生产实践中。《零成本实现Web性能...
Jmeter自动化测试脚本录制工具
jmeter+ant+Jenkins搭建接口自动化测试,可以三体集成实现一键自动;
利用jmeter3.2,jenkins2.6,ant1.10搭建自动化测试平台,也可以迁移到Linux做性能测试,不过就得修改测试报告模版了
Jmeter接口自动化测试框架是我自己写的文档,很适合想入门接口自动化的人,该文档很详细,没有一点跳步,值得想入门的人看
《零成本实现web性能测试:基于apache jmeter》 第1章 性能测试基础 1 1.1 初识性能测试 1 1.1.1 性能测试的概念 1 1.1.2 性能测试的目的 2 1.1.3 性能测试的常见分类 2 1.1.4 性能测试的常见指标 3 1.1.5 性能测试...
ant+jmeter+excel自动化接口框架,优化报告显示,生成详情接口信息
jmeter+ant+jenkins接口自动化测试框架,功能自动化和性能自动化均可
Jenkins集成Jmeter进行Web自动化性能测试。 Jenkins、ant、Jmeter
Jmeter自动化测试脚本
基于jmeter的接口自动化测试平台 主要特点: 1、支持windows远程维护管理测试脚本 2、支持远程一键执行、定时任务执行 3、支持自动化测试报告生成 4、支持历史接口自动化测试报告查看
简述了 如果使用 Ant+Jmeter 来进行 开发API 的功能测试,也附带扯到了 最终如何整合入hudson(jerkins) 的集成build环境中
Jmeter+ant自动生成测试报告的模板,测试报告中增加TPS(Throughput)和90% Line等指标;
Jmeter+ant+Jenkins接口自动化文档 本地项目尝试,输出了文档介绍了资源下载以及安装,使用的步骤。
JMeter接口自动化测试,包含详细介绍步骤,JMeter接口自动化测试,JMeter接口自动化测试JMeter接口自动化测试,JMeter接口自动化测试JMeter接口自动化测试
通过集成jmeter,ant和jenkins,实现自动化接口测试框架。自动执行测试,自动生成报告以及持续集成