首页 > 其他 > 详细

性能05篇-JMeter常用测试元件

时间:2017-03-04 00:18:42      阅读:293      评论:0      收藏:0      [点我收藏+]

 

JMeter测试计划有一个被称为“函数测试模式”的选项,当这一选项被选中后,就会促使JMeter记录每一次采样从服务器获取的数据。如果测试人员在测试监听器中配置了保存测试数据的文件,那么这些数据就会记录在该文件中。这项功能很有用,特别是测试人员可能需要简单运行一下测试脚本,以便验证JMeter的配置是否正确,以及服务器返回的结果是否符合预期。不过如此一来,保存测试数据的文件会迅速变得庞大起来,JMeter的性能也会受到影响。因此当测试人员使用JMeter进行压力测试时,应该关闭这一选项(默认情况下是关闭的)。如果不记录测试数据到文件中,那么这一选项中与不选中就没有区别。另外,测试人员可以使用监听器上的“configure”按钮,来配置哪些测试数据应该被保存。

技术分享

技术分享

1、线程组

线程组是任何测试计划的起点,所有的逻辑控制器和采样器都必须在线程组之下。其他的测试原件(如监听器)可以被直接放在测试计划之下,这些测试元件对所有线程组都生效。线程组就像它的名字所描述的那样,被用来管理执行性能测试所需的JMeter线程。用户通过线程组的控制面板可以:设置线程数量、设置线程启动周期、设置执行测试脚本的循环次数。

每一个JMeter线程都会完整的执行测试计划,而且它们之间是完全独立运行的。这种多线程机制被用来模拟服务器应用的并发连接。参数Ramp-Up Period告诉JMeter达到最大线程数需要多长时间。假定共有10个线程,Ramp-UP Period为100秒,那么JMeter就会在100秒内启动所有10个线程,并让它们运转起来。每一个测试线程都会在上一个线程启动10秒之后才开始运行。Ramp-UP Period不能设定得太短,否则在测试的初始阶段会给予服务器过大的压力。Ramp-UP Period也不能设定得太长,否则就会发生第一个线程已经执行完毕,而最后一个线程还没有启动的情况。

建议初始值可以设定为Ramp-UP Period=总线程数,后续再根据实际情况适当增减。

循环次数根据实际情况自我设定。

线程组中的调度器选项,可以设定测试运行的”启动时间“和”结束时间“。测试启动后会一直等待,直到用户设定的启动时间。测试运行期间,JMeter就会终止测试运行,否则JMeter会继续下一个测试循环。

另,”启动延迟“会使“启动时间”无效,而“持续时间”会使“结束时间”无效。

2、控制器

JMeter有两种类型的控制器:采样器和逻辑控制器,两者结合起来驱动了测试进程。采样器被JMeter用来向服务器发送请求。测试人员还可以通过为采样器添加配置元件来定制化请求。

逻辑控制器可控制JMeter的测试逻辑,比如何时发送请求。例如:可以插入交替控制器来轮流发送多个请求。

JMeter采样器包含:FTP Request、HTTP Request、JDBC Request、Java object request、LDAP Request、SOAP/XML-RPC Request、WebService(SOAP)Request

每一种采样器都有多种参数可供设置。一定要为测试计划添加一个监听器,以便查看和存储请求的结果。

如果想检查服务器响应的内容,可以为对应采样器添加断言。

逻辑控制器可以帮助用户控制测试逻辑,特别是何时发送请求。逻辑控制器可以改变其子测试元件的请求执行顺序。

3、监听器

监听器提供了测试期间收集到信息的访问方法。“图形结果”监听器会将系统响应时长绘制在一张图片之中。“查看结果树”监听器会展示采样器请求和响应的细节,还能以HTML和XML格式展示系统响应的基础部分。其他监听器通过总结或者聚合方式展示信息。

监听器可以在测试的任何地方添加,包括直接放在测试计划之中。

4、定时器

默认线程在发送请求之间没有间歇,添加定时器,可避免服务器短时间被大量访问请求湮没。定时器使每一个采样器都在执行前等待一个固定时长。如果测试人员为线程组添加了多个定时器,那么JMeter会将这些定时器的时长叠加起来,共同影响作用域范围内的采样器。如要在测试计划中某个位置添加暂停,可使用“Test Action”采样器。

5、断言

使用断言检查从服务器获得的响应内容。通过断言可以测试服务器返回的响应与测试人员的期望是否相符。

例如可以使用Perl格式的正则表达式来描述响应中应该包含的文字,对断言某个查询的响应中包含特定的文字信息。

可以对任何采样器添加断言。例如,用HTTP请求添加断言,检查文本“</HTML>”。如果JMeter不能找到该文本,那么它就会请求标记为失败。

注意:断言会影响作用域内的所有采样器。如果要让断言只影响某个采样器,需要将断言作为该采样器的子项。

6、配置元件

配置元件与采样器紧密关联。虽然配置元件不发送请求(除了HTTP代理服务器例外),但它可以添加或者修改请求。

配置元件仅对所在测试数分支有效。

例外:“用户定义的参数”会在测试的初始阶段执行,无论处于测试数的哪个位置。建议放在开始位置。

7、前置处理器

前置处理器会在采样器发出请求之前做一些特殊操作。如果前置处理器附着在某个采样器之下,那么它只会在采样器运行之前执行。前置处理器通常用于采样器发出请求前修改采样器的某些设置,或者更新某些变量的值

8、后置处理器

后置处理器会在采样器发送请求之后做一些特殊操作。如果后置处理器附着在某个采样器之下,那么只会在采样器运行之后执行。后置处理器通常被用来处理服务器的响应数据,特别是服务器响应中提取数据。

 

 


        长按二维码识别关注,您的支持是我们最大的动力。       

        公众号:测试梦工厂

        QQ一群:300897805

  技术分享

 

性能05篇-JMeter常用测试元件

原文:http://www.cnblogs.com/testdream/p/6498824.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!