JMeter:执行顺序与作用域

开发 后端
JMeter组件作用域指的是JMeter组件(配置元件,前置处理器,定时器,后置处理器,断言,监听器)起作用的范围,在此范围内组件是有效的,可以影响取样器的行为。

一、执行顺序

类似于运算符或操作符的优先级,当JMeter测试中包含多个不同的元素时,哪些元素先执行,哪些元素后执行,并不是严格按照它们出现的先后顺序依次有序执行的,而是会遵循一定的内部规则,我们称之为JMeter元素的执行顺序,一般情况下JMeter元素按照如下顺序依次执行:

0. 配置元件(Config Element)。

1. 前置处理器(Pre Processors)。

2. 定时器(Timer)。

3. 取样器(Sampler)。

4. 后置处理器(Post Processors)。

5. 断言(Assertions)。

6. 监听器(Listener)。

注意,只有取样器结果不为空的情况下才会执行4、5、6。

一个简单的例子:

其中①为取样器、②为配置元件、③为定时器、④为监听器、⑤为前置处理器、⑥为后置处理器、⑦为断言。

执行顺序为:②-->⑤-->③-->①-->⑥-->⑦-->④。

二、组件作用域

JMeter测试树元素分类

在JMeter的GUI界面,测试计划就是一颗树,Test Plan是树的根节点,其他元素都是其子孙.从作用域的角度来看,测试树中的元素可以分为两大类:

1、具有层次结构的元素

  •  这类元素的作用域与其所处的层次有关。
  •  这类元素包括:配置元件,前置处理器,定时器,后置处理器,断言,监听器这6大组件。

2、具有顺序结构的元素

  • 这类元素一般严格按照其出现的先后顺序依次有序的执行。
  •  这类元素不会对其他元素的功能有影响,只是起控制作用,没有作用域的概念。
  •  这类元素包括取样器与逻辑控制器。

另外,还有剩下的线程组比较特殊,线程组也不会影响其他元素的功能,但是线程组的执行顺序是可以配置的,若测试计划下包含多个线程组,默认是并行执行的,若要按照其出现的顺序依次执行,需要在测试计划下勾选"Run Thread Groups consecutively (i.e. one at a time)"。

作用域

JMeter组件作用域指的是JMeter组件(配置元件,前置处理器,定时器,后置处理器,断言,监听器)起作用的范围,在此范围内组件是有效的,可以影响取样器的行为。

从前面的内容可以看出,JMeter作用域是针对组件而言的,只有层次结构的组件才有作用域的概念。

JMeter组件作用域规则

按照组件的父节点不同,组件的作用域有如下类型:

(1)取样器作用域:

父节点为取样器的组件具有的作用域,仅对该取样器起作用。

(2)逻辑控制器作用域:

父节点为逻辑控制器的组件具有的作用域,对该逻辑控制器下的所有取样器起作用。

(3)线程组作用域:

父节点为线程组的组件具有的作用域,对该线程组下的所有取样器起作用。

(4)测试计划作用域:

父节点为测试计划的组件具有的作用域,对测试计划下的所有取样器起作用。

三、作用域案例说明

1、取样器作用域

"Response Assertion_1"响应断言,其父节点为"HTTP Resquest_baidu_1"取样器,具有取样器作用域,其作用域为该取样器.所以此响应断言只会断言"HTTP Resquest_baidu_1",而不会断言"HTTP Resquest_baidu_2"取样器,如下图示:

2、逻辑控制器作用域

"Response Assertion"响应断言,其父节点为"Loop Controller1"逻辑控制器,具有逻辑控制器作用域,其对逻辑控制器下的所有取样器起作用.所以该响应断言会断言"Loop Controller1"逻辑控制器下所有取样器,包括"HTTP Request1","HTTP Request2"与"HTTP Request3",如下图示:

3、线程组作用域

"Response Assertion"响应断言,其父节点为"Thread Group"线程组,具有线程组作用域,其对线程组下的所有取样器起作用.所以该响应断言会断言"Thread Group"线程组下所有取样器,包括"HTTP Request1","HTTP Request2","HTTP Request3"与"HTTP Request4",如下图示:

4、测试计划作用域

"Response Assertion"响应断言,其父节点为"Test Plan"测试计划,具有测试计划作用域,其对测试计划下的所有取样器起作用.所以该响应断言会断言"Test Plan"测试计划下所有取样器,包括"HTTP Request1","HTTP Request2","HTTP Request3","HTTP Request4","HTTP Request5"与"HTTP Request6",如下图示:

责任编辑:姜华 来源: 今日头条
相关推荐

2023-05-05 07:41:42

执行上下文JavaScript

2021-03-16 22:25:06

作用域链作用域JavaScript

2021-03-17 08:39:24

作用域作用域链JavaScript

2010-04-16 09:27:18

Ocacle执行计划

2010-08-31 16:29:40

DHCP客户端

2021-03-09 08:35:51

JSS作用域前端

2019-03-13 08:00:00

JavaScript作用域前端

2011-09-06 09:56:24

JavaScript

2024-03-14 11:27:16

C++变量编程

2010-09-25 16:10:09

添加DHCP作用域

2022-04-05 12:59:07

源码线程onEvent

2010-09-01 09:03:56

CSS优先权

2011-04-18 09:31:35

JavaScript

2010-09-29 15:02:23

DHCP作用域

2010-08-25 15:19:20

DHCP作用域

2020-12-16 11:09:27

JavaScript语言开发

2015-07-08 10:25:05

Javascript上下文作用域

2012-05-16 13:45:24

Java构造器

2009-07-03 16:33:13

Tapestry函数执

2022-01-21 08:50:15

Promise任务队列前端
点赞
收藏

51CTO技术栈公众号