目录
1、作用域?
-
变量有作用域,类似python里面的函数变量【有局部作用域、有全局作用域等】
-
JMeter里面也有作用域,但是取样器没有作用域的概念
-
因为取样器是独立单独运行的,都是别人为它提供服务(牛的一匹)
-
-
在JMeter中,元件的作用域是靠测试计划的树形结构中元件的父子关系来确定的
-
注意,取样器是核心,其他组件都是以取样器为核心来运行的
-
那么组件添加的位置不同,那么生效的取样器也就不同
-
-
作用域的一些原则:
-
前一个组件定义的变量,在后续的所有的元件中都生效【当然这里说的是同一个线程组哈】
-
1)取样器:取样器元件不和其他元件相互作用,因此不存在作用域的问题,所以取样器就不需要谈作用域这个概念了
-
2)逻辑控制器:逻辑控制的元件只对它的子节点中的取样器和逻辑控制器起作用
-
3)其他六大元件:除了取样器和逻辑控制器之外,如果是某个取样器的子节点,那么这个元件就只对其父节点起作用
-
4)如果其父节点不是取样器,那么它的作用域是该元件父节点下的其他所有后代节点【包括子节点,子节点的子节点等】
-
2、逻辑控制器
-
逻辑控制器只会作用于它里面的元件【取样器,以及嵌套的逻辑控制器】
3、其他六大组件的作用域
-
六大组件
-
配置元件
-
前置处理器
-
定时器
-
后置处理器
-
断言
-
监听器
-
-
它们的父级是取样器
-
那么只作用于该取样器【用户定义的变量和用户参数除外】
-
-
它们的父级不是取样器
-
那么会作用于这个父级下的所有取样器
-
4、示例
-
json提取器放里面
-
json提取器放外面
-
分析
-
就是如果后置处理器【json提取器】放到外面,那么它会作用于每个取样器
-
意思就是说json提取器在外面的时候,还会对java请求1的结果再去提取一次,就提取不到,那么就得到了"Not Found "的一个值,把原来那个给覆盖掉了
-