概述
一.逻辑控制器
-
什么时逻辑控制器
用于控制采样器(sampler)的执行顺序,它有多个逻辑控制语句封装成不同功能的组件组成(仅对节点的sampler有效)。 -
逻辑控制器分类
1)控制测试计划节点的路径执行顺序,如,loop controller(循环控制器)、if controller(if控制器);
2)对测试计划中的脚本进行分组,方便jmeter统计执行结果以及进行脚本的运行时控制,如,throughput controller(吞吐量控制器)、transaction controller(事务控制器)。
二.如果(If)控制器
- 作用:条件为真时,执行控制器下所有取样器
- 使用方法
1)测试计划-线程-用户自定义变量
2)线程组-如果(If)控制器-HTTP请求
3)测计划-监听器-查看结果树 - 如果(If)控制器配置
1)勾选“Interpret Condition as Variable Expression?”:若在Expression输入框录入“${name}==test"条件,执行Run后查看结果树中并没有监控到执行的记录…这是因为要使用”_jexl3 “或”_groovy“函数(直接输出true或false)
groovy函数
jexl3函数
”_jexl3 “或”_groovy“函数生成的表达式粘贴至“如果(if)控制器”配置页面中“Expression录入框”内
2)勾选“Interpret Condition as Variable Expression?”和“Evaluate for all children?”:
借用$ (JMeterThread.last_sample_ok) 函数:若上一个取样器执行结果通过(true),则下一个取样器正常执行,否则下一个取样器不执行。
3)不勾选“Interpret Condition as Variable Expression?”和“Evaluate for all children?”:在“如果(if)控制器”配置页面中“Expression录入框”内直接录入表达式
备注:(1)字符串比较:参数和值都要加“双引号”,如:KaTeX parse error: Expected group after '_' at position 2: {_̲_groovy("{name}"==“test”,)}
( 2)数字比较:${id}==000000
(3)布尔值:直接录入true或false(必须小写)
(4)在Expression输入框中直接输入判断的表达式,如0== 0、${id} > 2,则不做求值计算(true/false),达不到预期的效果。
三.循环控制器(loop controller)
- 作用:仅对循环控制器层级下的取样器有效
- 使用方法
1)线程组-循环控制器-HTTP请求
3)测计划-监听器-查看结果树
三.foreach控制器(与“用户定义变量”元件一起使用) - 位置:线程组-逻辑控制器-foreach控制器
- 配置“用户定义变量”元件
1)设置用户定义变量
变量名称——格式:前缀_数字,如 id_1
备注:后缀数字一定时连续的
2) 配置foreach控制器
输入变量名前缀:id
开始循环字段(不包括):
结束的循环字段(包含):
输出的变量名称:用户定义变量通过foreach控制器后产生的新名称:coin
- 使用foreach控制器输出的变量:${coin}
最后
以上就是神勇枫叶为你收集整理的Jmeter逻辑控制器——如果(if)控制器、循环控制器、foreach控制器(10)的全部内容,希望文章能够帮你解决Jmeter逻辑控制器——如果(if)控制器、循环控制器、foreach控制器(10)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复