接上文,下面继续介绍Jmeter的测试元件。
1.定时器
默认, JMeter线程发送出的每个请求是不间断的。我们建议你通过添加一个可用的定时器到你的线程组里来指定延迟时间。如果你不添加延时,JMeter可能在较短的时间内发送大量的请求致使你的服务器瘫痪。
定时器将导致JMeter在线程组里,在每个请求间,延迟一定时间。
如果你想在一个线程组里添加一个以上的定时器,JMeter会在执行你所应用的那个取样器之前累加所有的计时器,然后以累加后的时间来做停顿。
2.断言
断言允许你判断从被测的服务器端接收到的响应的实际情况。使用断言,你能“根本上测试”你的应用返回的是你预期的结果。
例如,你可以断言对查询的响应将包含某些特定的文本。你指定的文本可以是Perl样式的正则表达式,并且可以指示响应包含文本,或者它应该与整个响应匹配。
你可以添加断言到任意一个取样器里,例如,你可以添加断言到一个HTTP请求来检查文本“</HTML>”。JMeter会检查这个文本是否在HTTP响应里,如果JMeter找不到,它将把这个请求标记为“失败的请求”。
注意,断言适用于其范围内的所有采样器。要将断言限制为单个采样器,请将断言添加为采样器的子级。
要查看断言结果,请将断言侦听器添加到线程组。失败的断言也将显示在树视图和表侦听器中,并将计入错误%age,例如在聚合和摘要报告中。
3.配置元件
配置元件工作和取样器很接近,尽管它不能发送请求(HTTP代理服务器除外),它可以补充或修改请求。
只有在你放置元件的树分支里面,才能访问配置元件。例如,如果你把HTTP Cookie管理器放在一个简单逻辑控制器里,那么只有你放在简单逻辑控制器里的HTTP请求控制器才能访问这个Cookie管理器(见下图)。“网页1(Web Page 1)”和“网页2(Web Page 2)”可以访问这个Cookie管理器,但“网页3(Web Page 3)”则不行。
并且,在树分支里的配置元件比在父级分支同样的元素有更高的优先权。例如,我们定义两个HTTP默任请求元件“默认网页1”和“默认网页2”。因为我们把“默认网页1”放在循环控制器里,只有“网页2”可以访问它。因为我们把它放在线程组里,其它HTTP请求将使用“默认网页2”。
4.前置处理器
前置处理器在取样器请求前执行一些操作。如果前置处理器附有取样器元件,那么它将先于这个取样器元件执行。前置处理器最常用于在样本请求运行之前修改其设置,或更新未从响应文本中提取的变量。有关何时执行前置处理器的详细信息,请参阅作用域规则。
5.后置处理器
后置处理器在取样器请求后执行一些操作。如果后置处理器附有取样器元件,它将在那个取样器元件运行之后运行。后置处理器多用于处理响应数据,通常用于从中提取值。有关执行后置处理器的详细信息,请参阅作用域规则。
6. 执行顺序
配置元素
前置处理器
计时器
取样器
后置处理器(除非取样结果为空)
断言(除非取样结果为空)
监听器(除非取样结果为空)
请注意,计时器、断言、前置处理器和后置处理器仅在有取样器应用时才被处理。逻辑控制器和取样器按照它们在树中出现的顺序进行处理。根据发现其他测试元素的范围和测试元素的类型来处理其他测试元素。[在同一种类型中,元素按照它们在树中出现的顺序进行处理]。