前言:
一个线程多个脚本的时候,发现只要100个用户同时执行,请求就会乱。
期望2个线程执行结果:
获取验证码-注册-登录这个流程
获取验证码-注册-登录这个流程
实际2个线程执行结果:
a. 登录-获取验证码-注册
b. 注册-获取验证码-登录
三个接口顺序有的先有的后,导致有的接口执行失败,为了能够让几个请求在多个线程下也是按照我们想要的顺序执行,就用到一个控制器【临界部分控制器】
1、在线程组中添加控制器-临界部分控制器
![](https://img-blog.csdnimg.cn/img_convert/fb4dff25c1860190ad53bbcde4d329bb.png)
2、关于琐名称
锁名为空:认为每个锁为不同的锁
锁名相同,多个锁认为是同一个锁,同一个时间点只能存在一个在运行中的请求,就是琐之间只能串行
锁名为变量,根据变量值来判断是不是属于同一个锁,变量值为相同时,则认为是同一个锁
我们为了并发,为琐增加一个随机数,步骤:在函数助手中,设置随机数,复制并填写到琐的名称
![](https://img-blog.csdnimg.cn/img_convert/11b3d374849863b50d8e23ae7947143e.png)
![](https://img-blog.csdnimg.cn/img_convert/be44aa9acfa7ea22390b421ee0ae63c0.png)
![](https://img-blog.csdnimg.cn/img_convert/1116a16be072e2a5afdf69bd80de5153.png)
3、看一下两种方式对比,一个直接在线程组下创建接口,一个是在临界部分创建接口,接口的顺序我们是一样的
![](https://img-blog.csdnimg.cn/img_convert/e5cbfb430cdb80ff415d7be9419654e3.png)
4、执行结果就是按照接口从上往下,依次执行,符合预期的场景
![](https://img-blog.csdnimg.cn/img_convert/6feb4e7af0672ba1e87658580d295398.png)