Jmeter—测试计划里的元件(续)

来源:互联网 发布:奉化淘宝司法拍卖网 编辑:程序博客网 时间:2024/05/01 00:09

4、 计时器(Timers)

 

        计时器,通俗讲就是在Jmeter中设置两个请求之间的延时,用来模拟思考时间(Think time)。计时器在线程产生每个请求前启动。默认的,JMeter线程在每个请求之间不停顿地发送请求。我们建议你通过添加一个可用的计时器来给你的线程组指定一个延迟。如果你不添加延迟,JMeter会通过在很短的时间内发送过多的请求来压垮你的服务器。

        计时器会使JMeter在一个线程制造请求前延迟一个确定数量的时间。如果你选择给一个线程组添加超过一个计时器,JMeter会在执行它们申请的取样器之前计算计时器的总和作为延迟时间。

5、断言(Assertions) 

     断言允许你判断从测试服务器返回的结果。使用断言,你可以从根本上测试你的应用程序是否正在返回你所期待的结果。例如,你能断言一个查询的响应中含有某些特殊的文本。你指定的文本可以是一个Perl类型的正则表达式,并且你能指定响应包含这段文本,还是它应该匹配整个响应。你可以对任意的取样器添加一个断言。例如,你可以给一个HTTP请求添加一个断言检查正文,”</HTML>”。JMeter然后会在这个HTTP响应中检查这段正文,如果JMeter找不到这段正文,它会把这次请求标识成一个失败的请求。为查看断言的结果,在线程组中添加一个断言监听器。失败的断言会在树形和表格监听器中出现,并且会计算错误的百分比(例如在聚合报告和简报中)。

         通俗讲,断言相当于一个测试用例中某个测试步骤的预期结果,如果取样器返回的实际结果与你断言的预期结果不一致的话,在结果观察树里会显示红色,在测试报告里会显示 false。

 6、配置元件(Configuration Elements)

       配置元件的工作和取样器紧密相联。尽管它不发送请求(HTTP Proxy Server除外),但它可以添加或修改请求。配置元件只对你放置该元件的树形分支产生作用。例如,如果你把一个HTTP Cookie管理器放到一个简单逻辑控制器下面,这个Cookie管理器只会对你放置到简单逻辑控制器里面的HTTP请求控制器产生作用。如下图所示:

      图中的HTTPCookie管理器对HTTP请求”Web Page 1”和”Web Page 2”起作用,但是对”Web Page 3”不起作用。并且,在树形分支下里的配置元件比一个”父”分支下的相同配置元件有更高的优先级。例如,我们定义两个HTTP默认请求元件,"Web Defaults 1" 和 "Web Defaults 2".因为我们把"Web Defaults 1"放到一个循环控制器里,只有”Web Page 2”能用它。其它的HTTP请求会使用”Web Defults 2”,因为我们把它放到线程组下(其他所有分支的”父”)。

7、前置处理器(Pre-Processor)

  

      前置处理器在取样器请求发出前执行一些动作。如果一个前置处理器附加到一个请求元件,那它会在那个请求元件启动前先执行。一个前置处理器最经常被使用于在取样器运行前修改取样器请求的设置,或者更新那些不是从响应文本中提取的变量值。关于前置处理器何时被执行的细节,查看作用域规则。

8、后置处理器(Post-Processor)

  后置处理器在取样器请求发出后执行一些动作。如果一个后置处理器被附加到一个请求元件,那它会在那个请求元件启动后执行。一个后置处理器最经常被使用于处理响应数据,经常从用它提取数据。关于后置处理器何时被执行的细节,查看作用域规则。

9、执行顺序  

  1.  前置处理器

  2.  计时器

  3.  取样器

  4.  后置处理器 (直到取样结果为空)

  5.  断言 (直到取样结果为空)

  6.  监听器 (直到取样结果为空)

请注意计时器,断言,前置/后置处理器只有当它们向一个取样器申请时才会执行.逻辑控制器和取样器会按照它们在树中出现的顺序执行.其他的测试元件按照它们被找到的区域和测试元件的类型来执行. [在同一类型中,元件会按照它们在树中出现的顺序执行].

例如,在如下测试中:

 ·   控制器

  • o      1号后置处理器
  • o      1号取样器
  • o      2号取样器
  • o      1号计时器
  • o      1号断言
  • o      1号前置处理器
  • o      2号计时器
  • o      2号后置处理器

执行的顺序会是                               

              1号前置处理器

              1号计时器

              2号计时器

              1号取样器

              1号后置处理器

              2号前置处理器

              1号断言

  ----------------

              1号前置处理器

              1号计时器

              2号计时器

              2号取样器

              1号后置处理器

              2号后置处理器

              1号断言

10、作用域规则

        JMeter 测试树包含元件是分等级和顺序的。在测试树中的一些元件是严格分级(监听器,配置元件,后置处理器,前置处理器,断言,定时器),一些主要是顺序的(控制器,取样器)。当你创建你的测试计划时,你将创建一个描述被执行的步骤集的取样请求(通过取样器)有序列表。这些请求常被组织在有序的控制器中。给出如下的测试树:

 

     请求的顺序是one,two,three,four。

      一些控制器影响它的子元件的顺序,你可以在组件参考看到详细的控制器。
     其他元素是分等级的。例如,一个断言在测试树中是分等级的。如果你的父元件是个请求,它就被应用于那个请求。如果它的父元件是控制器,它就影响所有那个控制器下的所有请求。如下测试树:

      断言#1 仅被应用于请求 One,断言 #2 仅被应用于 请求 Two 和 Three。
    再给另一个例子,这次使用定时器:

 

      在这个例子里,请求的命名显示出它们被执行的顺序。Timer #1 应用于 请求 Two, Three, 和 Four (注意对于分等级的元件怎样的顺序是不相关的)。断言 #1 应用于请求Three。Timer #2 对所有请求有效。

         希望这些例子使你弄清了配置(分等级的)元件如何被应用。

         元件Header Manager, Cookie Manager 和Authorization manager 的配置和默认元件的配置被视为是不同的。默认元件配置的设置并入取样器到达的值的集里。然而来自manager的设置没有并入。如果一个取样器的范围中有多于一个管理器,那么仅仅一个被使用,但是现在没有办法指定哪个被使用。

        到此,把测试计划中元件总结完了。供以后学习使用。

 

    

    

原创粉丝点击