JMeter元件的作用域与执行顺序

xiaoxiao2021-02-28  72

JMeter元件的作用域

JMeter元件:

            取样器sampler、逻辑控制器logic Controller、配置元件 config elements、定时器 times、             前置处理器 per-processors、后置处理器post-processors、断言assertions、监听器listener              在jmeter中,元件的作用域是靠测试计划的的树型结构中元件的父子关系来确定的,作用域的原则是: 1.取样器(sampler)元件不和其它元件相互作用,因此不存在作用域的问题。 2.逻辑控制器(Logic Controller)元件只对其子节点中的取样器和逻辑控制器作用。 3.除取样器和逻辑控制器元件外,其他6类元件,如果其父节点是sampler,则该元件只对其父子节点起作用。

4.除取样器和逻辑控制器元件外,其他6类元件,如果其父节点不是sampler,则其作用域是该元件父节点下的其他所有后代节点(包括子节点,子节点的子节点等)。

A(注:下图只是为了说明作用域,无法正常运行)

取样器(HTTP请求1 、FTP请求2 、TCP取样器3) 逻辑控制器(循环控制器) 监听器(图形结果1、聚合报告2)   1. HTTP请求1 、FTP请求2 、TCP取样器3 元件没有作用域的概念。   2. 循环控制器 元件作用域名是其子节点FTP请求2 、TCP取样器3 。   3. 图形结果1 元件的作用域是是FTP请求2 、TCP取样器3。   4. 聚合报告2 元作的作用域是HTTP请求1 、FTP请求2 、TCP取样器3

B(注:下图只是为了说明作用域,无法正常运行)

取样器(HTTP请求 、FTP请求 、TCP取样器、 JDBC Request )逻辑控制器(循环控制器、随即控制器)定时器(固定定时器、Uniform Random Timer )断言(响应断言、XML断言)监听器(图形结果、聚合报告)

       1. HTTP请求、FTP请求、TCP取样器、 JDBC Request 元件没有作用域名概念   2.循环控制器 的作用域为 FTP请求 、TCP取样器和 随即控制器;随机控制器的作用域是JDBC Request   3.固定定时器作用于 HTTP请求 ,Uniform Random Timer 作用于所有取样器   4.响应断言作用于JDBC Request ,XML断言作用于FTP请求 、TCP取样和JDBC Request 。   5. 图形结果作用于FTP请求 、TCP取样和JDBC Request ,聚合报告作用于所有取样器。

其实,通过上面的分析,并没有你想象的那么复杂,我们从各个元件的层次结构就可以判断每个元件的作用域。   Jmeter 中的配置元件(Config Elements)在其作用范围内的行为与其他元件相比稍有不同。配置元件分两大类:默认配置(HTTP默认请求、FTP默认请求等)和管理(HTTP 头管理、HTTP cookie 管理等)。   其中默认配置(Configuration Defaults)元件中设置的值可以在作用域内叠加,例如,在一个测试计划中添加两个HTTP 默认请求,其中第一个默认设置 Server name or IP 为www.google.com ,第二个默认设置Path 为/page-not-exist , 则在这两个元件作用域内的所有HTTP 默认请求,其默认的Server name or IP 和Path 均为Server name or IP 和 /page-not-exist 。(你有一个故事,我有一个笑话,我们一交换,两个人都分别拥有了一个故事加一个笑话。)   管理(Manager)类逻辑控制器元件的效果则不能进行叠加。如果两个或两个以上相同的管理类元件作用域有重叠。则在重叠作用域内的取样器元件只会随即受到其中一个的作用,这样会导致取样器行为的不确定性。因此,在使用管理类逻辑控制器时,一定要注意保证相同的管理类元件的作用域不发生重叠。

元件的执行顺序

  了解了元件有作用域之后,来看看元件的执行顺序,元件执行顺序的规则很简单,在同一作用域名范围内,测试计划中的元件按照如下顺序执行。   (1)配置元件(config elements )   (2)前置处理程序(Per-processors)   (3)定时器(timers )   (4)取样器(Sampler)   (5)后置处理程序(Post-processors) (除非Sampler 得到的返回结果为空)。   (6)断言(Assertions)(除非Sampler 得到的返回结果为空)。   (7)监听器(Listeners)(除非Sampler 得到的返回结果为空)。   关于执行顺序,有两点需要注意:   1.前置处理器、后置处理器和断言等元件只能对取样器作用,因此,如果在它们的作用域内没有任何取样器,则不会被执行。   2.如果在同一作用域范围内有多个同一类型的元件,则这些元件按照它们在测试计划中的上下顺序一次执行。

转载请注明原文地址: https://www.6miu.com/read-36038.html

最新回复(0)