性能测试 持续压测时间的作用_性能测试-JMeter组件作用域规则

3804688f1fbbcbabf46965e9948bceaf.png

JMeter组件作用域规则

1.1 JMeter测试计划组成

JMeter测试计划是由一系列功能不同的元素组成的.

一个测试计划可以包括如下4类元素:

1.测试计划

Test Plan

容纳执行测试的一系列步骤.

2.线程组

Thread Group

模拟一个或多个用户.

3.组件

功能相似或逻辑上相关的元件的集合.

JMeter包含六大组件:

(1)配置元件

(2)前置处理器

(3)定时器

(4)后置处理器

(5)断言

(6)监听器

4.控制器

模拟业务逻辑的实现.

控制包括:

(1)取样器

(2)逻辑控制器

1.2 JMeter测试树元素分类

在JMeter的GUI界面,测试计划就是一颗树,Test Plan是树的根节点,

其他元素都是其子孙.

从作用域的角度来看,测试树中的元素可以分为两大类:

1.具有层次结构的元素

这类元素的作用域与其所处的层次有关.

这类元素包括:配置元件,前置处理器,定时器,后置处理器,断言,监听器这6大组件.

2.具有顺序结构的元素

这类元素一般严格按照其出现的先后顺序依次有序的执行.

这类元素不会对其他元素的功能有影响,只是起控制作用,没有作用域的概念.

这类元素包括取样器与逻辑控制.

另外,还有剩下的线程组比较特殊,线程组也不会影响其他元素的功能,

但是线程组的执行顺序是可以配置的,若测试计划下包含多个线程组,

默认是随机执行的,若要按照其出现的顺序依次执行,需要在测试计划下

勾选"Run Thread Groups consecutively (i.e. one at a time)".

2 JMeter组件作用域

2.1 什么是作用域

从前面的内容可以看出,JMeter作用域是针对组件而言的,

只有层次结构的组件才有作用域的概念.

JMeter组件作用域指的是JMeter组件

(配置元件,前置处理器,定时器,后置处理器,断言,监听器)起作用的范围,

在此范围内组件是有效的,可以影响取样器的行为.

2.2 JMeter组件作用域规则

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

(1)取样器作用域

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

(2)逻辑控制器作用域

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

(3)线程组作用域

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

(4)测试计划作用域

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

3 作用域案例说明

3.1 取样器作用域

"Response Assertion_1"响应断言,其父节点为"HTTP Resquest_baidu_1"取样器,

具有取样器作用域,其作用域为该取样器.所以此响应断言只会断言"HTTP Resquest_baidu_1",

而不会断言"HTTP Resquest_baidu_2"取样器,如下图示:

e266e301ac0142d1fc0422b319e33b02.png

3.2 逻辑控制器作用域

"Response Assertion"响应断言,其父节点为"Loop Controller1"逻辑控制器,具有逻辑控制器作用域,其对逻辑控制器下的所有取样器起作用.所以该响应断言会断言"Loop Controller1"逻辑控制器下所有取样器,

包括"HTTP Request1","HTTP Request2"与"HTTP Request3",如下图示:

76460632f206d566585743cde6f97b27.png

3.3 线程组作用域

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

9439140e237bf2e8fe764d328f0c1a43.png

3.4 测试计划作用域

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

3a517de82c3a342a5c605f86e00dfb37.png

4 .组件叠加对作用域的影响

一般情况下,对于前置处理器,定时器,后置处理器,断言与监听器组件而言,当一个取样器受多个不同作用域的组件影响时,按照这些组件在测试计划中的执行的先后顺序依次作用于取样器.

举个例子:

"HTTP Request1"取样器受"Response Assersion1"与"Response Assersion2"

响应断言的影响,按照执行顺序,首先"Response Assersion2"对

"HTTP Request1"断言,接下来是""Response Assersion1"再次对

"HTTP Request1"断言,如下图所示:

9046407864f366e9d38dd16be26bb011.png

但对于配置元件这个组件而言,情况有所不同了.当有多个配置元件作用于取样器时,JMeter按照执行的先后顺序将多个配置元件中的值覆盖合并后再提交给取样器.

举个例子:

配置元件"HTTP Request Defaults1"与"HTTP Request Defaults2",设置分别如下图所示:

e45e99ec5f5bd04fc3518a7294de698f.png
7892fe9ec93d23a7891217db2f56ef1f.png

JMeter将两个配置元件中设置的值进行合并与覆盖,可以在查看结果树中查看合并后的结果,如下图所示:

8a87ee7f6cb42ff25673197249ef2fc1.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值