一、Jmeter控制器
分为两种类型:
- 控制测试计划执行过程中节点的逻辑执行顺序,如:循环控制器,if控制器等
- 对测试计划中的脚本进行分组,方便Jmeter统计执行结果以及进行脚本的运行时控制等,如:吞吐量控制器,事务控制器等
这里我们先学习使用IF控制器
1.IF控制器
条件控制器,通过某个条件控制节点下的元件是否运行,只能作用于其下的子项,条件为假,则节点下请求/元件不执行
定义一个用户变量mode,值为"baidu"
(1)新建if控制器,根据mode的值进行不同的请求。默认是勾选Interpret Condition as Variable Expression?,就要使用到__jexl3 或者 __groovy函数。打开函数助手,把生成的函数字符串拷贝到if控制器中的Expression中就行了
条件为True,请求成功
再添加一个控制器,填写的条件为False,则跳过执行
如果要直接使用表达式,那就需要去掉Interpret Condition as Variable Expression?的勾选
(2)Evaluate for all children的用法
重新定义一个用户变量flag,值为"Y",新建两个if控制器,勾选Evaluate for all children
在请2求的取样器下添加一个JSR233 PostProcessor的后置处理器,作用就是改变变量flag的值
执行测试计划,可以看到,后面一个请求没有执行,是因为请求1执行完之后,flag的值变成N了,不满足第二个if控制器的条件
我们取消勾选Evaluate for all children,可以看到两个请求都请求成功了
(3)Use status of last sample的用法
把第一个请求的请求地址写错,请求失败,请求2也没有请求。
Use status of last sample的作用就是只有当上一个请求成功后,才会执行if控制器下的请求