准备工作:

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. jqgrid 列显示图片

    <script> var img; //自定义图片的格式,可以根据rowdata自定义 function alarmFormatter(cellvalue, options, rowdat ...

  2. 关于ios极光推送server端注意的地方

    今天试用了极光推送API 用它是因为,大多数人说它的文档是最全的,但是用过之后,发现关于IOS的文档,还是很不够,导致走了一点弯路! 特别是服务端的代码:https://github.com/jpus ...

  3. [转]rpcndr.h和wtypes.h冲突Bug的解决方案

    [转]rpcndr.h和wtypes.h冲突Bug的解决方案 http://blog.csdn.net/tzwh_86/article/details/9495133 rpcndr.h和wtypes. ...

  4. [shell基础]——uniq命令

    uniq命令常见选项      去除重复行      -u  显示不重复的行      -d  显示有重复的行      -c  打印每一行重复的次数 测试文本内容如下: # cat 4.txt 11 ...

  5. Android L Camera2 API 使用实例程序汇总

    在网上发现几个使用Camera API2开发的实例程序,总结一下方便后续参考: 1.Camera2 Basic : https://github.com/googlesamples/android-C ...

  6. win8.1 cygwin编译java轻量虚拟机avian

    1.背景 昨天在网上看到别人用aauto写本地小程序写的很爽,我觉得如果java的jre能小一点,凭借java庞大的第三方类库写小工具也还算不错的.本人就经常用eclipse+一些commons包写些 ...

  7. Linux常用命令查看日志

    cattail -f日 志 文 件 说 明 /var/log/message 系统启动后的信息和错误日志,是Red Hat Linux中最常用的日志之一 /var/log/secure 与安全相关的日 ...

  8. JavaScript继承学习笔记

    JavaScript作为一个面向对象语言(JS是基于对象的),可以实现继承是必不可少的,但是由于本身并没有类的概念,所以不会像真正的面向对象编程语言通过类实现继承,但可以通过其他方法实现继承.(jav ...

  9. 1491: [NOI2007]社交网络 - BZOJ

    Description Input Output输出文件包括n 行,每行一个实数,精确到小数点后3 位.第i 行的实数表 示结点i 在社交网络中的重要程度.Sample Input4 41 2 12 ...

  10. BitMap排序

    问题描述:       BitMap排序思想:             用1bit位标记某个元素对应的值       优点:             效率高,不允许进行比较和移位            ...