`
hot66hot
  • 浏览: 444171 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java测试工具-jmeter使用

阅读更多
JMeter介绍
JMeter是Apache下一个类似LoadRunner的开源性能测试项目,可用用来对静态的和动态的资源(如:files, Servlets, Perl scripts, Java Objects, Data Bases and Queries, FTP Servers)的性能进行测试.

可对以下类型服务进行性能测试:

    Web - HTTP, HTTPS
    SOAP
    Database via JDBC
    LDAP
    JMS
    Mail - POP3(S) and IMAP(S)

官方网站http://jmeter.apache.org/
基本概念
测试计划:
使用JMeter进行测试的起点,是其它JMeter测试元件的容器

线程组:代表一定数量的并发用户,它可以用来模拟并发用户发送请求。实际的请求内容在Sampler中定义,它被线程组包含。可以在“测试计划->添加->线程组”来建立它,然后在线程组面板里有几个输入栏:线程数、Ramp-Up Period(in seconds)、循环次数,其中Ramp-Up Period(in seconds)表示在这时间内创建完所有的线程。如有8个线程,Ramp-Up = 200秒,那么线程的启动时间间隔为200/8=25秒,这样的好处是:一开始不会对服务器有太大的负载。线程组是为模拟并发负载而设计。

取样器(Sampler):模拟各种请求。所有实际的测试任务都由取样器承担,存在很多种请求。如:HTTP 、ftp请求等等.

监听器:负责收集测试结果,同时也被告知了结果显示的方式。功能是对取样器的请求结果显示、统计一些数据(吞吐量、KB/S……)等。

断言: 用于来判断请求响应的结果是否如用户所期望,是否正确。它可以用来隔离问题域,即在确保功能正确的前提下执行压力测试。这个限制对于测试的有效性非常有用.

定时器:
负责定义请求(线程)之间的延迟间隔,模拟对服务器的连续请求。

逻逻辑控控制器:
允许自定义JMeter发送请求的行为逻辑,它与Sampler结合使用可以模拟复杂的请求序列.

配置元件:
维护Sampler需要的配置信息,并根据实际的需要会修改请求的内容.

前置处理器/后置处理器:
负责在生成请求之前和之后完成工作。前置处理器常常用来修改请求的设置,后置处理器则常常用来处理响应的数据。

构建测试
QuickStart
下载解压后即可打开GUI界面,建立一个简单的JMeter测试计划



首先建立测试线程组,然后添加Sample,这里选择HTTP请求



配置服务器名称为www.meituan.com,方法设置为GET(其它如POST,PUT,DELETE均支持)
这里我们添加监听器-查看结果树方便查看发送的请求内容及返回结果,运行测试,通过查看结果树即可看到发送请求及响应数据,其它常用的处理结果的监听器有图形结果,聚合报告,Aggregate Graph等。

参数化

    实际的测试场景往往不是上述这么简单,比如GET,POST,PUT,DELETE时往往会带有不少参数,而在进行性能测试时我们希望这些参数在指定的范围内或为我们指定的值,这时候就需要对请求进行参数化,下面是一些常用的参数化方法。

数据文件

通过添加配置元件-CSV Data Set Config从外部文件中导入参数



filename可直接只填名字,默认位置为测试计划配置文件(jmx)所在路径
Encoding:有中文时需要填,一般不用
Vaiable Names:文件中各列所表示的参数项;各参数项之间利用逗号分隔;参数项的名称应该与HTTP Request中的参数项一致
Delimiter:如文件中使用的是逗号分隔,则填写逗号;如使用的是TAB,则填写\t
Recycle on EOF:True=当读取文件到结尾时,再重头读取文件 False=当读取文件到结尾时,停止读取文件
Stop thread on EOF: 当Recycle on EOF一项为False时起效;True=当读取文件到结尾时,停止进程

配置好上述csv之后即可在请求中直接引用



可配置多个csv文件,也可在一个csv文件中配置多项

利用函数

Jmeter中可以产生值的函数有Random( , , ),threadNum,CSVRead( , ),_StringFromFile( , , , ) 等,利用上述函数可用很方便的产生随机参数
【说明】关于Jmeter的函数使用,可以用Jmeter的函数助手对话框:点击Jmeter的“选项”,选择“函数助手对话框”(或者使用快捷键“Ctrl+F”),在“选择一个功能”的下拉框中选择你所要是有的函数,在函数参数列表的“值”这一栏,填写好相应的参数值,点击按钮【生成】,就可以拷贝生成的函数字符串进行使用了。
利用函数的使用方式与上述方式相同,将value替换为该生成的函数字符串即可,如图



关联
    在需要获得数据的请求上右击添加一个后置处理器,并设置引用名称即可,如图现在有如下两个请求add,update,我们希望第二个请求能update刚才添加的数据,add请求执行成功后会返回id,则可以給add请求添加后置处理器获取该值然后在update请求中直接引用 

{"data":{"id":2078585},"paging":null}




在之后的请求中直接通过${id}即可引用该值。

脚本录制

     通过上述GUI配置方式得到的测试方案会以jmx文件的方式进行保存,实际测试时只需要该jmx文件即可,如果需要测试很多功能,采用手动配置方式就显得不太方便,通过利用Badboy进行脚本录制可以很方便的得到jmx文件,然后调整修改加入参数化内容即可得到我们最终需要的测试方案。
    Badboy是用来录制操作过程的,它录制的结果是被jmeter做并发测试的素材使用。
Badboy官方网站http://www.badboy.com.au
查看结果
如下图为通过Aggregate Graph看到的测试结果,可以根据情况选用多种监听器来获取测试结果



自动化
    JMeter也可以用命令行的方式执行,并纪录执行结果到文件,然后再进行处理导出性能数据及图表。
JMETER_HOME=apache-jmeter-2.6
JMETER_JAR=$JMETER_HOME/bin/ApacheJMeter.jar
java -jar $JMETER_JAR -n -t poi.jmx -l poi.jtl

-n 制定JMeter运行在non-gui模式下
-t 包含测试计划的JMX文件的名称
-l 用于记录简单结果的JTL文件名称

    预先设置好JMeter测试运行环境之后,可以方便的通过脚本自动执行性能测试,并将执行结果纪录到jtl文件,经过处理后得到性能数据及图表并进行展示。
    运行测试,纪录结果到JTL_FILE.jtl文件
    java -jar $JMETER_JAR -n -t $PLAN_JMX -l $JTL_FILE.jtl
    利用perl脚本对结果进行处理并绘制性能数据图
    perl $JMETER_GRAPH_PL -alllb $JTL_FILE.jtl
    JMETER_GRAPH_PL日志处理脚本,来源于官网社区

http://dl.iteye.com/topics/download/58263d68-ea27-393c-b2e7-6dc595d44595

    响应时间范围分布图,x轴为请求数量,颜色区分不同时间范围,比如小于20ms的显示为绿色



  具体请求的响应时间及每分钟流量



其它
    JMeter功能强大的前置,后置处理器,也许可以用来实现对接口/功能的白盒自动化测试,预先录制好脚本,同时根据测试需求添加好前置,后置处理器如正则表达式对响应结果进行验证,再通过脚本对测试结果进行分析,输出接口/功能的验证结果,集成到CruiseControl中进行展示。
  • 大小: 58.5 KB
  • 大小: 57.9 KB
  • 大小: 33.1 KB
  • 大小: 31.8 KB
  • 大小: 31.6 KB
  • 大小: 27.1 KB
  • 大小: 38.6 KB
  • 大小: 7.1 KB
  • 大小: 44.9 KB
分享到:
评论

相关推荐

    压力测试工具:apache-jmeter-5.0

    Apache JMeter是Apache组织开发的压力测试工具,也是目前应用最广泛的开源性能测试工具之一。 不过要记住Jmeter由JAVA开发,安装Jmeter之前需要先安装JDK。

    Apache JMeter (apache-jmeter-5.5.zip)

    Apache JMeter (apache-jmeter-5.5.zip)可用于测试静态和动态资源、Web 动态应用程序的性能。 它可用于模拟服务器、服务器组、网络或对象上的重负载,以测试其强度或分析不同负载类型下的整体性能。 Apache JMeter...

    apache-jmeter-5.1.1.zip

    apache-jmeter-5.1.1 压力测试工具

    Apache JMeter (apache-jmeter-5.5.tgz)

    Apache JMeter (apache-jmeter-5.5.tgz)可用于测试静态和动态资源、Web 动态应用程序的性能。 它可用于模拟服务器、服务器组、网络或对象上的重负载,以测试其强度或分析不同负载类型下的整体性能。 Apache JMeter...

    apache-jmeter-5.4.3,接口压测工具jmeter

    apache-jmeter-5.4.3,接口压测工具jmeter Apache JMeter 是 Apache 组织基于 Java 开发的压力测试工具,用于对软件做压力测试

    压力测试工具Apache-Jmeter-5.5

    Apache JMeter是100%纯JAVA桌面应用程序,被设计为用于测试客户端/服务端结构的软件(例如web应用程序)。它可以用来测试静态和动态资源的性能,例如:静态文件,Java Servlet,CGI Scripts,Java Object,数据库和FTP...

    压力测试工具apache-jmeter-5.3

    Apache JMeter是Apache组织开发的基 于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域。它可以用于测试静态和动态资源,例如静态文件、Java小服务程序、CGI脚本...

    Apache JMeter (apache-jmeter-5.5_src.zip 源码)

    Apache JMeter (apache-jmeter-5.5_src.zip 源码)可用于测试静态和动态资源、Web 动态应用程序的性能。 它可用于模拟服务器、服务器组、网络或对象上的重负载,以测试其强度或分析不同负载类型下的整体性能。 ...

    Jmeter软件测试工具 jakarta-jmeter-2.3

    JMeter是Apache组织的开放源代码项目,它是功能和性能测试的工具,100%的用java实现。

    apache-jmeter-5.2.1.tgz.zip

    Apache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域。 它可以用于测试静态和动态资源,例如静态文件、Java 小服务程序、CGI ...

    apache-jmeter-5.3_src.zip

    Apache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试但后来扩展到其他测试领域。 它可以用于测试静态和动态资源例如静态文件、Java小服务程序、CGI脚本、...

    apache-jmeter-3.10 压力测试工具

    apache-jmeter-3.1的简单压力测试使用方法(下载和安装) 博客转载https://blog.csdn.net/lan_shu/article/details/55190127 压力测试工具LoadRunner是收费的,而且操作复杂。作为开发人员当然是用apache提供的...

    java JDK8 + apache-jmeter-5.4.3.zip 压力测试工具/性能测试工具

    apache-jmeter-5.4.3.zip jmeter5.4.3需要java8+的环境,本压缩包中包含了 jdk8 和 jmeter5.4.3 两个压缩包。 下载至本地后,解压压缩包,点击(jmeter)进入bin文件夹,双击jmeter.bat文件,会启动JMeter GUI工具

    apache-jmeter2.13-5.0版本

    Apache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域。 它可以用于测试静态和动态资源,例如静态文件、Java 小服务程序、CGI ...

    apache-jmeter-3.1.zip

    简介:Apache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域。 它可以用于测试静态和动态资源,例如静态文件、Java 小服务程序、...

    Apache-JMeter-5.1.1安装包

    JMeter是一款开源的Java应用程序,用于执行各种负载测试、功能测试、性能测试和压力测试任务。JMeter主要是针对Web应用程序,但它也可以用于测试其他类型的客户端/服务器系统。JMeter使用Java编写,具有跨平台性,...

    apache-jmeter-5.2.1.rar

    JMeter是一个纯粹的Java编写的应用程序,它主要是用来进行负载和性能测试。原先它是为Web/HTTP测试而设计的。设计JMeter最初始的目的是用来测试Web Application但是现在已经扩展了很多功能。JMeter通常被用来对一些...

    Apache JMeter (apache-jmeter-5.5_src.tgz 源码)

    Apache JMeter (apache-jmeter-5.5_src.tgz 源码)可用于测试静态和动态资源、Web 动态应用程序的性能。 它可用于模拟服务器、服务器组、网络或对象上的重负载,以测试其强度或分析不同负载类型下的整体性能。 ...

    java jmeter 工具使用文档

    java 一款很方便的测试工具 jmeter 工具使用文档 压力测试工具 可以对代码进行功能 性能测试

Global site tag (gtag.js) - Google Analytics