JMeter基础介绍

JMeter是一款JAVA开发的开源测试工具,主要用来做功能和压力/负载方面的测试。我用的是Apache-JMeter2.10

 

JMeter有两种类型的控制器:取样器(sample)和逻辑控制器(Logic Controller)

 

取样器(Sample)是性能测试中向服务器发送请求,记录响应信息,记录响应时间的最小单元

 

逻辑控制器,包括两类无件,一类是用于控制test plan 中 sampler 节点发送请求的逻辑顺序的控制器。另一类是用来组织可控制 sampler 来节点的,如 事务控制器、吞吐量控制器。

 

配置单元:和Sample组件一起工作,主要用来配置Sample如何来发起请求访问服务器,这个东西的主要特点是可以把一些Sample的共同配置放在一个元素里面方便管理,配置单元是有作用域的。作用域和树的那个关系一样越是上级节点的作用域越大,越是接近叶子节点的作用域就越小,可以复写上级作用域的配置。

 

定时器 : 这个主要是用来调节(线程组),控制线程每次运行测试逻辑(比如说:发出请求)的时间间隔。当然这个下面还有很多类型的定时器,他们主要功能就是调节时间间隔,但个个组件之间的策略有很大不同。

 

前置处理器 和 后置处理器类似一个HOOK:在测试执行之前和执行之后执行一些脚本的逻辑。该组件我还没有具体使用过,但大致功能就是这样,非重点组件。

 

Sample:表示客户端发送某种格式或者规范的请求到服务端,所以大家看到了各种各样的Sample,其中有两个Http 相关的。一般用HttpClient功能和效率将更强。

 

断言: 意思是指对于Sample完成了请求发送之后,判断一下返回的结果是否满足期望。

 

监听器 : 这个组件不同于平时在Web编程的那种监听器,他是伴随着Jemeter测试的运行而从中抓取运行期间的数据的一个组件,经常使用的是聚合报告组件,从里面可以统计到测试的TPS,响应时间等关键测试数据

 

 

线程组:右击测试计划-添加-Threads (Users)线程(用户)-线程组

 

线程组就是一个虚拟用户组,线程数就是虚拟用户的个数,setup thread group和teardown thread group跟loadrunner脚本中的两项差不多,lr脚本除了action里是真正的脚本核心内容,还有初始化“环境”的初始化脚本和测试完毕后对应的清除信息的脚本块。

Ramp-Up Period (in seconds)表示线程之间间隔多少时间,单位是秒,比如10个线程,间隔10秒,那么10/10=1表示10个线程间每隔1秒钟请求网站。循环次数:每个线程发送请求的次数。永远表示所有线程会一直发送请求,一到选择停止运行脚本。

1)设置请求服务器、压力链接等信息

右键点击刚创建的线程组,在弹出的菜单中,选择添加->Sampler->Http请求,对一个链接进行压力测试,只需要在服务器名称或ip处填写链接地址即可,如图所示:

 

如果对多个链接进行随机测试,将多个链接保存到一个文本文件中,点击菜单栏的选项-函数助手对话框,在“选择一个功能”下拉列表中选择_StringFromFile,然后在本机新建一个测试文件C:\Users\apache-jmeter-2.10\test.txt,在第一行(你也可以不在第一行)的值中填写测试文件的路径,然后点击“生成”按钮。txt文档格式如下:

注意,每行前面并没有http://www.***.com这样的信息。

另外值得注意的一个地方是,如果参数中有中文的情况,运行的时候可能会出现乱码,这个时候就需要注意你在Jmeter中的编码设置与你要请求的网页编码是一致的。

路径文本框下面的选项,可以按默认的就成,Use multipart/form-data for HTTP POST是当请求中有附件的情况,一般情况下都不用选中的。

然后设置定时器来控制QPS,一旦取样器的响应时间发生改变(网络环境发生改变),就需要重新调整定时器的等待时间。右键点击fnng.cnblogs.com主页请求 ,弹出菜单(添加--->定时器--->Constant Throughput Timer)选择Constant Throughput Timer。

在这里可以设置目标吞吐量(每分钟发出的请求数),如果规定访问主页的负载20秒每次,此处应设置1200次

添加监听器(Listener)

Jmeter 中使用监听器元件收集取样器记录的数据并以可视化的方式来呈现。Jmeter有各种不同的监听器类型,因为上HTTP请求,我们可在添加聚合报告,更为直观的查看测试结果。

  添加聚合报告,右键点击线程组,在弹的菜单(添加--->监听器--->聚合报告)中选择聚合报告,点击运行即可:

posted @ 2016-02-18 22:01  Mytesting  Views(286)  Comments(0Edit  收藏  举报