准备工作:

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:

  1. <project name="autotest" default="all" basedir=".">
  2. <!-- 需要改成自己本地的 Jmeter 目录-->
  3. <property name="jmeter.home" value="/export/servers/jmeter"/>
  4. <!-- jmeter生成jtl格式的结果报告的路径-->
  5. <property name="jmeter.result.jtl.dir" value="${basedir}/jtl" />
  6. <!-- jmeter生成html格式的结果报告的路径-->
  7. <property name="jmeter.result.html.dir" value="${basedir}/html" />
  8. <!-- jmeter生成csv格式的结果报告的路径-->
  9. <property name="jmeter.result.csv.dir" value="${basedir}/csv" />
  10. <!-- 编译后class文件目录 -->
  11. <property name="classes" value="${basedir}/classes"/>
  12. <!-- 生成的报告的前缀-->
  13. <property name="ReportName" value="TestTomNgx"/>
  14. <!-- 参数-->
  15. <property name="threads1" value="5" />
  16. <property name="threads2" value="5" />

修改其中的jmeter目录一定要修改成你本地所在的目录,根据需要修改ReportName以及线程数。

  1. <jmeter jmeterhome="${jmeter.home}" resultlog="${jmeter.result.jtl.dir}/${ReportName}${time}.jtl"><testplans dir="${basedir}" includes="test.jmx"/>

上传被测的jmx文件到当前目录,并修改build.xml中的jmx文件名。

为了能够动态修改压测的线程数,我们使用vi命令打开被测的jmx文件:

  1. <stringProp name="ThreadGroup.num_threads">${__P(request.threads1)}</stringProp>

将线程数设置项改为该参数,名字与build.xml中的对应即可。

  1. <jmeter jmeterhome="${jmeter.home}" resultlog="${jmeter.result.jtl.dir}/${ReportName}${time}.jtl">
  2. <testplans dir="${basedir}" includes="testbaidu.jmx"/>
  3. <property name="jmeter.save.saveservice.output_format" value="csv"/>
  4. <property name="jmeter.save.saveservice.response_message" value="false" />
  5. <jvmarg value="-Xincgc"/>
  6. <jvmarg value="-Xms1024m"/>
  7. <jvmarg value="-Xmx1024m"/>
  8. <property name="request.threads1" value="${threads1}"/>
  9. <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自动化性能测试的更多相关文章

  1. jenkins+ant+jmeter自动化性能测试平台

    jenkins+ant+jmeter自动化性能测试平台 Jmeter是性能测试的工具,java编写.开源,小巧方便,可以图形界面运行也可以在命令行下运行.网上已经有人使用ant来运行,http://w ...

  2. window平台基于influxdb + grafana + jmeter 搭建性能测试实时监控平台

    一.influxdb 安装与配置 1.1 influxdb下载并安装 官网无需翻墙,但是下载跳出的界面需要翻墙,我这里提供下载链接:https://dl.influxdata.com/influxdb ...

  3. 【转】Jenkins+Ant+Jmeter自动化性能测试平台

    Jmeter是性能测试的工具,java编写.开源,小巧方便,可以图形界面运行也可以在命令行下运行.网上已经有人使用ant来运行,,既然可以使用ant运行,那和hudson.jenkins集成就很方便了 ...

  4. 基于Jmeter跟Jenkins的自动化性能测试的一站式解决方案(转)

    www.MyException.Cn  网友分享于:2015-08-26  浏览:0次   基于Jmeter和Jenkins的自动化性能测试的一站式解决方案 作者: Yu, Qingguo Shen, ...

  5. Ant+jmeter 实现自动化性能测试

    一.前言 性能测试首选的工具是JMeter,在此不多做介绍,但是不得不说JMeter也是一款非常好的接口测试工具.性能测试过程中手工重复的活动非常多,为了给客户提供一个性能测试报告,我用了一周时间进行 ...

  6. Jenkins +Ant +Jmeter(apache-jmeter-5.1.1)自动化性能测试平台

    1.安装配置好Jdk, 下载网址:https://www.cr173.com/soft/33894.html 2.Jmeter下载地址:http://jmeter.apache.org/downloa ...

  7. ant+jmeter+crontab实现自动化性能测试

    准备工作: 1.下载jmeter(我下载的apache-jmeter-2.13.zip) 2.配置jmeter环境变量,即path前添加jmeter的bin路径) 3.下载ant(我使用的apache ...

  8. 转:利用ant与jmeter实现负载测试自动化

    性能测试一直以来都是测试领域一个令人争议的话题.测试的参考标准.评判依据及测试的方法选择都很难有一个统一的说法.但无论如何,对于需要能够承受一定压力而运行的程序来说,进行其进行功能和性能测试是一个必不 ...

  9. Jmeter+ant+Jenkins接口自动化框架搭建

    摘自:https://testerhome.com/topics/13389 一.背景  上一篇讲了Jmeter 接口自动化-脚本数据分离实例,我们知道怎么利用Jmeter去编写接口自动化脚本,但是接 ...

随机推荐

  1. Effective Objective-C 2.0之Note.04

    “类族”(class cluster)是一种很有用的模式(pattern),可以隐藏“抽象基类”(abstract base class)背后的实现细节.Objective-C的系统框架中普遍使用此模 ...

  2. c# Random Class usage

    Random Usage sometimes, we hope to generate some random infor to manipulate our data structor. we ca ...

  3. 安装MSITVPN连接的时候弹出:需要(未知)上的文件'MSITVPN.bmp。

    使用 msitvpn 连接microsoft 公司内网,在安装msitvpn的时候突然弹出一个对话框提示需要msitvpn.bmp 文件,找了很久都没找到解决问题方案. 最后只能猜测是不是和用户的权限 ...

  4. My First Django Project (3) - Apache set up

    Holy moly!!!!因为漏了一下斜杠,害我反复调试了2,3天,无法读取static 文件,一直找不出原因,后来在apache的error.log中发现了原因. 1. 下载了apache 2.4, ...

  5. 17.Quartus 怎么回读CPLD里面的东西

    可以使用Quartus® II Programmer的“Examine”特性回读编程目标文件(.POF)是CPLD不是FPGA 先用auto检测加没加加密位,然后执行ex,然后save,Examine ...

  6. 为边框应用图片 border-image

    为边框应用图片 border-image 顾名思义就是为边框应用背景图片,它和我们常用的background属性比较相似.例如: background:url(xx.jpg) 10px 20px no ...

  7. android 开发 讯飞语音唤醒功能

    场景:进入程序后处于语音唤醒状态,当说到某个关键词的时候打开某个子界面(如:语音识别界面) 技术要点: 1. // 设置唤醒一直保持,直到调用stopListening,传入0则完成一次唤醒后,会话立 ...

  8. mac os 10.10上安装my eclipse显示virtual memory不足,解决方案

    mac os 10.10上安装my eclipse显示virtual memory不足,安装失败. 自从把OS 升级到10.10 之后, 各种问题, 安装的时候向导提示提示我们说没有足够的虚拟内存, ...

  9. LESS CSS 框架简介

    使用 LESS 简化层叠样式表(CSS)的编写 LESS 是动态的样式表语言,通过简洁明了的语法定义,使编写 CSS 的工作变得非常简单.本文将通过实例,为大家介绍这一框架. 简介 CSS(层叠样式表 ...

  10. TGL站长关于常见问题的回复

    问题地址: http://www.thegrouplet.com/thread-112923-1-1.html 问题: 网站配有太多的模板是否影响网站加载速度 月光答复: wp不需要删除其他的模板,不 ...