一、背景
假设一个业务的正常流程是:登录-添加人员-赋予权限,性能测试中,我们设置了多个线程,由于线程竞争,请求基本上不可能如我们所愿的,按照“登录-添加人员-赋予权限”这样的顺序一遍一遍往下执行,可能会出现
登录
登录
赋予权限
添加人员
......
这样的执行顺序。赋予权限执行在添加人员之前,都还没有添加人员就去赋予权限,后台会报错,影响测试。
二、解决办法
jmeter自带了一个Critical Section Controller(临界区控制器),官方把它定义为线程锁控制器。
在相同的时间点只会有一个线程去执行这个控制器下面的请求。
三、怎么做
1,依次按下图点击顺序,添加Critical Section Controller
其面板如下图所示,添加后不用做修改
2,在Critical Section Controller下添加请求,设置5个线程后执行,可以看到执行顺序很顺眼