JMeter经常使用组件

本文转至http://blog.chinaunix.net/uid-26884465-id-3418212.html,我的以为写得很是不错,适合初学者html

一、线程组正则表达式

程组是任何测试计划的起点,全部的逻辑控制器和采样器都必须放在线程组之下。其余的测试元件(如监听器)能够被直接放在测试计划之下,这些测试元件 对全部线程组都生效。线程组就像它的名字所描述的那样,被用来管理执行性能测试所需的JMeter线程。用户经过线程组的控制面板能够:服务器

设置线程数量。多线程

设置线程启动周期。并发

设置执行测试脚本的循环次数。ide

每个JMeter线程都会完整地执行测试计划,并且它们之间是彻底独立运行的。这种多线程机制被用来模拟服务器应用的并发链接。参数Ramp- Up Period告诉JMeter达到最大线程数须要多长时间。假定共有10个线程,Ramp-Up Period100秒,那么JMeter就会在100秒内启动全部10个线程,并让它们运转起来。每个测试线程都会在上一个线程启动10秒以后才开始 运行。假定共有30个线程,Ramp-Up Period120秒,那么线程启动的间隔就为4秒。性能

Ramp-Up参数不能设定得过短,不然在测试的初始阶段会给予服务器过大的压力。Ramp-Up参数也不能设定得太长,不然就会发生第一个线程已经执行完毕,而最后一个线程尚未启动的状况(除非测试人员指望这种特殊状况发生)。测试

如何找到一个合适的Ramp-Up参数值?做者建议初始值能够设定为Ramp-Up=总线程数,后续再根据实际状况适当增减。ui

二、调度器spa

在调度器控制面板中,能够设定测试运行的"启动时间""结束时间"。测试启动后会一直等待,直到用户设定的启动时间。测试运行期间,JMeter 会在每一次循环结束后,检查是否已经达到结束时间。若是已经达到告终束时间,JMeter就会终止测试运行,不然JMeter会继续下一个测试循环。

另外,用户还能够设定"持续时间""启动延迟"两项参数。须要注意的是,"启动延迟"会使"启动时间"无效,而"持续时间"会使"结束时间"无效。

三、控制器

JMeter有两种类型的控制器:采样器和逻辑控制器,两者结合起来驱动了测试进程。采样器被JMeter用来向服务器发送请求。例如,当测试人员想往服务器发送一个HTTP请求时,就加入一个HTTP请求采样器。测试人员还能够经过为采样器添加配置元件来定制化请求。

用户可使用逻辑控制器来控制JMeter的测试逻辑,好比什么时候发送请求。举一个例子:测试人员能够插入交替控制器来轮流发送多个请求。

1)采样器

采样器告诉JMeter发送一个请求到指定服务器,并等待服务器的请求。采样器会按照其在测试树中的顺序去执行,还能够用逻辑控制器来改变采样器运行的重复次数。

每一种采样器都有多种参数可供设置。测试人员还能够经过在测试计划中加入一个或者多个配置元件,来进一步定制化采样器。

若是测试人员打算向同一个服务器发送同一类请求,能够考虑使用默认配置元件。每一类采样器都有一个或多个对应的默认配置元件。必定记住应为测试计划添加一个监听器,以便查看和存储(存储到磁盘)请求的结果。

若是测试人员想检查服务器响应的内容,能够为对应采样器添加断言。例如,当对Web应用作压力测试时,服务器虽然成功返回了"HTTP Response"代码,可是页面上可能会有错误,或者丢失了部分页面片断。针对这种状况,测试人员能够添加断言来检查特定的HTML标签,或者常见的错 误信息等。JMeter容许在断言中使用正则表达式。

2)逻辑控制器

逻辑控制器能够帮助用户控制JMeter的测试逻辑,特别是什么时候发送请求。逻辑控制器能够改变其子测试元件的请求执行顺序。

四、监听器

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

另外,监听器能够将测试数据导入到文件之中,以供后续分析。全部监听器都会提供一个输入域,以便于用户指定存储测试数据的文件。监听器还会提供一个 配置按钮,用来配置存储测试数据的哪些字段,以及选用的存储格式(CSV或者XML)。读者朋友须要注意的是,全部监听器都保存一样的数据,惟一的区别是 它们如何展现数据。

监听器能够在测试的任何地方添加,包括直接放在测试计划之下。它们仅收集测试树中相同或者更低级别测试元件的数据。

五、定时器

默认状况下,JMeter线程在发送请求之间没有间歇。建议为线程组添加某种定时器,以便设定请求之间应该间隔多长时间。若是测试人员不设定这种延迟,JMeter可能会在短期内产生大量访问请求,致使服务器被大量请求所淹没。

定时器会让做用域内的每个采样器都在执行前等待一个固定时长。若是测试人员为线程组添加了多个定时器,那么JMeter会将这些定时器的时长叠加起来,共同影响做用域范围内的采样器。定时器能够做为采样器或者逻辑控制器的子项,目的是只影响做用域内的采样器。

要在测试计划中的某个位置添加暂停,测试人员可使用"Test Action"采样器。

六、断言

用户可使用断言来检查从服务器得到的响应内容。经过断言能够测试服务器返回的响应与测试人员的指望是否相符。

例如,测试人员能够断言某个查询的响应中包含特定的文字信息。测试人员可使用Perl格式的正则表达式来描述响应中应该包含的文字,或者它应该与整个响应相符。

测试人员能够为任何采样器添加断言。例如,测试人员能够为HTTP请求添加断言,用于检查文本""。接下来JMeter就会检查该文本是否出如今HTTP响应中。若是JMeter不能找到该文本,那么它就会将请求标记为失败。

须要注意的是,断言会影响做用域内的全部采样器。若是要让断言只影响某个采样器,须要将断言做为该采样器的子项。

若是要查看断言结果,能够为线程组添加"断言结果"监听器。失败的断言,也会在"查看结果树""用表格查看结果"两种监听器中显示。另外,在"Summary Report""聚合报告"中还会以错误百分率的形式统计。

七、配置元件

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

配置元件仅对其所在的测试树分支有效。例如,假设测试人员在一个简单逻辑控制器中放置了一个HTTP Cookie管理器,那么该HTTP Cookie管理器只对放置在简单逻辑控制器内的其余逻辑控制器生效

另外,相比父分支的配置元件,子分支内部的配置元件优先级更高。配置元件 "用户定义的参数"会在测试的初始阶段执行(不管它处于测试树的哪一个位置)。

八、前置处理器

前置处理器会在采样器发出请求以前作一些特殊操做。若是前置处理器附着在某个采样器之下,那么它只会在该采样器运行以前执行。前置处理器一般用于在采样器发出请求前修改采样器的某些设置,或者更新某些变量的值(这些变量不在服务器响应中获取值)。

九、后置处理器

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

 

最后,对于这么多的部件,JMeter执行顺序规则以下:

配置元件

前置处理器

定时器

采样器

后置处理器(除非服务器响应为空)

断言(除非服务器响应为空)

监听器(除非服务器响应为空)

只有看成用域内存在采样器时,定时器、断言、前置/后置处理器才会被执行。逻辑控制器和采样器按照在测试树中出现的顺序执行。其余测试元件会依据自 身的做用域范围来执行,另外还与测试元件所属的类型有关(归属于同一类型的测试元件,会按照它们在测试树中出现的顺序来执行)。

相关文章
相关标签/搜索