JMeter 逻辑控制器
概念
逻辑控制器: 可以按照设定的逻辑控制取样器的执行顺序
思考:
线程组属性可以控制循环次数,那么循环控制器有什么用?
控制的作用域不同:
线程组: 控制线程组下的所有请求
循环控制器: 控制其子节点的所有接口请求
如果线程组循环次数为M,循环控制器循环次数为N:
循环控制器下的HTTP请求运行次数: M * N 次
线程组下的其他HTTP请求运行次数: M次
案例: 登录接口-密码错误逻辑据校验
密码错误逻辑: 当输入密码错误3次之后,账户锁定,不能再登录, 60S后才能再次登录
IF 控制器
位置:线程组 -> 添加 -> 逻辑控制器 -> IF 控制器
如下需求:通过定义的全局变量address 和IF 控制器 来控制两个HTTP请求该执行哪一个
IF 逻辑控制器有如下两种比较方式:
方式1: JS语法比较
方式2:采用jex函数比较(推荐)
注意:HTTP请求是放在IF 控制器下面
循环控制器
位置:线程组 -> 逻辑控制器 -> 循环控制器
以下是访问baidu 5 次的案例,需要注意层级关系
当线程组的循环次数(m)和循环控制器的循环次数一起配置(n)时,最终的请求次数为 m * n
ForEach 控制器
位置:线程组 -> 添加 -> 逻辑控制器 -> ForEach控制器
与用户定义的变量和正则表达式配合一起使用,循环读取用户定义的变量
用户定义的变量需要用:固定前缀_数字 或者 固定前缀+数字的格式,方便在foreach循环中使用
ForEach 面板:
参数介绍:
- 输入变量前缀: 要读取的输入变量的固定前缀
- 开始循环字段: 要读取的输入变量后缀数字的最小值-1
- 结束循环字段: 要读取的输入变量后缀数字的最大值
- 输出变量名称: 读取输入变量的值后保存的新变量名,用于后续HTTP请求来引用
上送请求取到了key的值:
结束循环字段如何动态获取?
通过debug sample 查看jmeter 内存:
可以通过${address_matchNr} 来获取, address 为foreach面板的输入变量前缀
事务控制器
应用场景: 业务流程的性能测试
面板:
本文来自博客园,作者:chuangzhou,转载请注明原文链接:https://www.cnblogs.com/czzz/p/15747073.html