逻辑控制器的位置
线程组->逻辑控制器
作用
逻辑控制器一般都是根据业务需求来灵活运用,大多是调用变量来进行判断是否符合条件
1、如果(IF)控制器
- 常见比较
1.字符串比较:"${变量名}" == "字符串"
2.整数比较:${变量名} == 整数
ps.如果是比较字符串,比较两边都需要加双引号
2、While Controller控制器
常见比较
1.字符串比较:${__javaScript(${变量名}!=5&& ${变量名} == 1)}
2.条件:整数比较:${__javaScript(“${变量名}”!= “字符串” && ${变量名} == 整数)}
ps.整数需要使用双引号变成字符串再比较例子1:循环5次数退出循环体,配合配置元件-计数器来实现
节点示意图
image
步骤
- 创建While Controller 条件:
{count}!=5)}
- 在控制器子节点创建定时器(配置元件->计数器)
image
- 例子2:循环10分钟退出循环体 配合前置处理器-BeanShell Sampler和定时器-固定定时器来实现
节点示意图
image
步骤
- 创建BeanShell Sampler,通过脚本获取当前时间(也是初始化的启始时间)
a. vars.put("startTime","${__time(HHmmss,)}"); - 创建While Controller控制器
a.{startTime}+600>${currentTime})}(以秒为单位 600为10分钟)
b. 开始时间+运行时间 > 当前时间 退出循环体 - 创建BeanShell Sampler 通过脚本获取当前时间(实时获取当前时间为了与启始时间实时比对)
3、Switch Controller控制器
变量可以是字符串或数字:
image
例子:根据变量值分别走不通的分支:配合简单控制器、BeanShell Sampler
节点示意图
image
步骤
- 创建BeanShell Sampler :最终将代码返回的值赋给S_isPhone
a.如图
image
b. 代码引用了外部jar包,主要功能判断手机号是哪家运营商,将返回值赋给S_isPhone
- 创建Switch Controller控制器:Switch Value:${S_isPhone} 变量传递
- 节点下创建三个简单控制器:名称分别是:中国移动、中国联通、中国电信
ps.本文内容都是当时好奇搜索学习时找到的博文的内容。忘了哪个博文了,所以没写转载链接。