基于ant的jmeter自动化性能测试
准备工作:
1.java的运行环境正常,及运行java -version、javac -version能正常输出java版本;
2.ant的运行环境正常,使用ant需要配置环境变量,编辑/etc/profile,在结尾处添加:
export ANT_HOME="/export/servers/ant"
export PATH=$ANT_HOME/bin:$PATH
保存退出后,执行命令source /etc/profile使环境变量即可生效。
3.将JMeter所在目录下extras子目录里的ant-JMeter-1.1.1.jar复制到Ant所在目录lib子目录之下,这样Ant运行时才能找到"org.programmerplanet.ant.taskdefs.jmeter.JMeterTask"这个类,从而成功触发JMeter脚本
4、ant根目录下新建文件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的虚拟目录,在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即可
基于ant的jmeter自动化性能测试的更多相关文章
- jenkins+ant+jmeter自动化性能测试平台
jenkins+ant+jmeter自动化性能测试平台 Jmeter是性能测试的工具,java编写.开源,小巧方便,可以图形界面运行也可以在命令行下运行.网上已经有人使用ant来运行,http://w ...
- window平台基于influxdb + grafana + jmeter 搭建性能测试实时监控平台
一.influxdb 安装与配置 1.1 influxdb下载并安装 官网无需翻墙,但是下载跳出的界面需要翻墙,我这里提供下载链接:https://dl.influxdata.com/influxdb ...
- 【转】Jenkins+Ant+Jmeter自动化性能测试平台
Jmeter是性能测试的工具,java编写.开源,小巧方便,可以图形界面运行也可以在命令行下运行.网上已经有人使用ant来运行,,既然可以使用ant运行,那和hudson.jenkins集成就很方便了 ...
- 基于Jmeter跟Jenkins的自动化性能测试的一站式解决方案(转)
www.MyException.Cn 网友分享于:2015-08-26 浏览:0次 基于Jmeter和Jenkins的自动化性能测试的一站式解决方案 作者: Yu, Qingguo Shen, ...
- Ant+jmeter 实现自动化性能测试
一.前言 性能测试首选的工具是JMeter,在此不多做介绍,但是不得不说JMeter也是一款非常好的接口测试工具.性能测试过程中手工重复的活动非常多,为了给客户提供一个性能测试报告,我用了一周时间进行 ...
- Jenkins +Ant +Jmeter(apache-jmeter-5.1.1)自动化性能测试平台
1.安装配置好Jdk, 下载网址:https://www.cr173.com/soft/33894.html 2.Jmeter下载地址:http://jmeter.apache.org/downloa ...
- ant+jmeter+crontab实现自动化性能测试
准备工作: 1.下载jmeter(我下载的apache-jmeter-2.13.zip) 2.配置jmeter环境变量,即path前添加jmeter的bin路径) 3.下载ant(我使用的apache ...
- 转:利用ant与jmeter实现负载测试自动化
性能测试一直以来都是测试领域一个令人争议的话题.测试的参考标准.评判依据及测试的方法选择都很难有一个统一的说法.但无论如何,对于需要能够承受一定压力而运行的程序来说,进行其进行功能和性能测试是一个必不 ...
- Jmeter+ant+Jenkins接口自动化框架搭建
摘自:https://testerhome.com/topics/13389 一.背景 上一篇讲了Jmeter 接口自动化-脚本数据分离实例,我们知道怎么利用Jmeter去编写接口自动化脚本,但是接 ...
随机推荐
- Table ‘performance_schema.session_variables’ doesn’t exist
运行mysql时,提示Table ‘performance_schema.session_variables’ doesn’t exist 解决的方法是: 第一步:在管理员命令中输入: mysql_u ...
- Golang的iota的特性
Golang的iota的特性: 1. iota在每个ConstBlock中自动归0. 2. iota在每个ConstSpec后自动增1. 换言之: iota是ConstBlock中ConstSpec的 ...
- c++基础(一):数据类型和结构
1.map map<int, int> rankDict;//定义map rankDict[1] = 5; rankDict[2] = 6;//map赋值 int dictSize = r ...
- [CentOS 6.5 X64]讓firefox java plugin 啟動
到ORACLE下載JRE http://www.oracle.com/technetwork/java/javase/downloads/index.html 我是X64所以下載 jre-7-linu ...
- Modal的跳转方法为什么会显得那么奇怪
初学Modal Segue的时候,并不能理解它为什么要做成这样.从A界面跳转到B界面还算正常,但是从B界面返回A界面,就显得略显猎奇了.必须先在A界面的Controller中自己造个方法@IBActi ...
- JS跨域方法及原理
JS跨域分析判断 JS跨域:在不同域之间,JS进行数据传输或通信.比如ajax向不同的域请求数据.JS获取iframe中的页面中的值(iframe内外不同域) 只要协议.端口.域名有一个不同则 ...
- JAVA类与对象(九)------多态
多态是同一个行为具有多个不同表现形式或形态的能力.多态性是对象多种表现形式的体现. 多态存在的三个必要条件: 继承 重写 父类引用指向子类对象 例:Parent p = new Child(); 当使 ...
- VS中设置#define _CRT_SECURE_NO_WARNINGS的两种方式
1.我们在编译老的用C语言的开源项目如lua源包的时候,可能因为一些老的.c文件使用了strcpy,scanf等不安全的函数,而报警告和错误,而导致无法编译通过. 2.此时我们有两种解决方案: a.在 ...
- Daily Scrum1--团队项目分工及估计时间
团队项目分工及估计时间 PM(黄剑锟): 任务一:监督进度,将每一天完成的任务总结,在各个部分进行协调与帮助.(贯穿整个项目周期) 任务二:提高搜索反应时间,优化搜索算法.(估计时间8小时) 程序设计 ...
- “我爱淘”冲刺阶段Scrum站立会议3
完成任务: 将搜索框的界面已经实现以及部署到整个框架中. 计划任务: 实现搜索功能,通过数据库的链接,实现用户可以查到自己需要的书籍的信息. 遇到问题: 1.数据库的操作,怎么实现查询功能: 2.Ac ...