Jmeter -- 元件的作用域与执行顺序

一、概念:

Jmeter共有8类可被执行的元件(测试计划与线程组不属于元件),这些元件中,取样器是典型的不与其它元件发生交互作用的元件,逻辑控制器只对其子节点的取样器有效,而其它元件(config elements 、pre-processors、timers 、post-processors、assertions、listeners、)需要与取样器(sampler)等元件交互。
1. 配置元件(config elements ) 会影响其作用范围内的所有元件。
2. 前置处理程序(Pre-processors)在其作用范围内的每一个sampler元件之前执行。
3. 定时器(timers )对其作用范围内的每一个sampler 有效
4. 后置处理程序(Post-processors)在其作用范围内的每一个sampler元件之后执行。
5. 断言(Assertions)对其作用范围内的每一个sampler 元件执行后的结果执行校验。
6. 监听器(Listeners)收集其作用范围的每一个sampler元件的信息并呈现。

二、作用域

在JMeter中,元件的作用域是靠测试计划的树型结构中元件的父子关系来确定的,作用域的原则是:
1. 取样器(sampler)元件不和其它元件相互作用,因此不存在作用域的问题。
2. 逻辑控制器(Logic Controller)元件只对其子节点中的取样器 和 逻辑控制器作用。
3. 除取样器和逻辑控制器元件外,其他6类元件,如果是某个sampler的子节点,则该元件会对其父子节点起作用。
4. 除取样器和逻辑控制器元件外,其他6类元件,如果其父节点不是sampler ,则其作用域是该元件父节点下的其他所有后代节点(包括子节点,子节点的子节点等)。

(除取样器和逻辑控制器外,其他均无法创建子节点)

 举两个栗子:

栗子一,上图中,

  1. HTTP Request1、HTTP Request2、HTTP Request3没有作用域的概念
  2. Loop Controller的作用域是其子节点HTTP Request2、HTTP Request3
  3. Graph Results的作用域是HTTP Request2、HTTP Request3
  4. Aggregate Report的作用域是HTTP Request1、HTTP Request2、HTTP Request3

     

  栗子二,上图中,

  1. HTTP Request1、HTTP Request2、HTTP Request3、HTTP Request4没有作用域的概念
  2. 循环控制器Loop Controller的作用域,是HTTP Request2、HTTP Request3、和Random Controller
  3. 固定定时器Constant Timer的作用域,是HTTP Request1
  4. 随机定时器Uniform Random Timer的作用域,是HTTP Request1、HTTP Request2、HTTP Request3、HTTP Request4
  5. 响应断言Response Assertion的作用域,是HTTP Request4
  6. XML断言XML Assertion的作用域,是HTTP Request2、HTTP Request3、HTTP Request4
  7. 图形结果Graph Results的作用域,是HTTP Request2、HTTP Request3、HTTP Request4
  8. 聚合报告Aggregate Report的作用域,是HTTP Request1、HTTP Request2、HTTP Request3、HTTP Request4

三、执行顺序

在同一作用域范围内,测试计划中的元件按照如下顺序执行。
(1)配置元件(config elements )
(2)前置处理程序(Per-processors)
(3)定时器(timers )
(4)取样器(Sampler)
(5)后置处理程序(Post-processors) (除非Sampler 得到的返回结果为空)。
(6)断言(Assertions)(除非Sampler 得到的返回结果为空)。
(7)监听器(Listeners)(除非Sampler 得到的返回结果为空)。

注意:
前置处理器、后置处理器和断言等元件均能对取样器作用,因此,如果在它们的作用域内没有任何取样器,则不会被执行。
如果在同一作用域范围内有多个同一类型的元件,则这些元件按照它们在测试计划中的上下顺序一次执行。

posted @ 2019-10-25 11:53  小虫虫大虫虫  阅读(157)  评论(0编辑  收藏  举报