1、简介
Flow Control Action 采样器是一个用于条件控制器的采样器。测试元素不是生成样本,而是暂停或停止所选目标。
此采样器还可以与事务控制器结合使用,因为它允许包含暂停而无需生成样本。对于可变延迟,将暂停时间设置为零,并添加一个 Timer 作为子项。
“停止”操作在完成任何正在进行的示例后停止线程或测试。“立即停止”操作无需等待样品完成即可停止测试;它会中断任何活动的样本。如果某些线程未能在 5 秒时限内停止,则会在 GUI 模式下显示一条消息。您可以尝试使用Stop命令来查看这是否会停止线程,但如果不会,您应该退出 JMeter。在 CLI 模式下,如果某些线程在 5 秒的时间限制内未能停止,JMeter 将退出。
可以使用 JMeter 属性jmeterengine.threadstop.wait更改等待时间。时间以毫秒为单位。
2、参数说明
- Logical Action on Thread
- Pause 暂停,配合 Duration 一起使用
- Duration(milliseconds) 延迟时间,单位是毫秒
- Start Next Thread Loop 开始下个线程循环
- Go to next loop iteration转到下一个循环迭代
- Break Current Loop 跳出当前的循环
- Logical Action on Thread/Test
- Stop 停止
- Stop Now 立即停止
- Target(Current Thread或All Threads)选择是当前线程还是所有线程,默认当前线程
3、使用说明
添加固定定时器,可以在请求之前加等待时间,如果想在请求之后加等待时间呢?
如果希望在 sampler 执行完之后再等待,则可使用取样器里面的测试活动 (Test Action);
- Pause 设置暂停
有两个请求,a 是注册用户请求,b 是登录的请求。先发 a 请求注册,注册成功后,用同一账号去登录。希望在第一个请求发送之后,设置个等待时间,再发第二个请求。
登录请求被延迟了2秒中
- 线程组之间暂停
运行结果:
线程组1的注册请求和线程组2的注册请求间隔3秒。 - 勾选Start Next Thread Loop(开始开始下一个线程循环)
只针对第一个注册请求循环 3次,第二个登录请求不执行
结果如下:
-
勾选Go To Next iteration of current Loop(转到当前循环的下一次迭代)
跟 Start Next Thread Loop 开始下个线程循环差不多 -
勾选Break Current Loop(跳出当前循环)
只有第一次循环执行成功
运行结果:
-
Stop(Current Thread)
运行结果:
当前线程组运行一次后停止 -
Stop(All Threads)
运行结果: