【Jmeter控制执行顺序 Critical Section Controller临界部分控制器】

一个完整的业务包含多个接口请求,且有先后顺序。在做性能测试的时候,要求接口请求顺序永远按照自己定义好的请求顺序执行。
增加一个critical section controller(临界部分控制器),认为增加一个锁,能控制执行顺序。
在这里插入图片描述

在jmeter中,同层级无逻辑控制器控制的取样器,执行顺序是从上往下,顺序执行的。这句话,怎么理解?在我们单个用户脚本调试阶段,执行顺序是从上往下;在多用户并发时,每一个并发用户(线程),也都是从上往下执行的,只是因为是并发,同一时刻,可能有不同用户(线程)做完了不同接口请求,查看结果树只是按照完成时间的先后显示请求结果。

临界部分控制器确保其子元素(采样器\控制器等)将仅由一个线程执行,在执行控制器的子元素之前先命名一个锁锁定。
在这里插入图片描述
并发请求(线程)这个控制器时,会先根据‘锁名称’生成一个‘锁’,锁定控制器下的所有子元素,等到所有子元素都执行完‘锁’才会释放,下一个请求(线程)才能执行,即,把原本的并发请求的并行处理方式,变成了串行处理。

每个线程要用的时候,生成一个新的锁名称而且不重复,是不是就可以并行处理了。想要锁名称变成动态,方法很多,使用随机数函数、使用时间戳函数、使用线程数函数…, 是不是很多,只要用个自动生成值的函数就可以。
修改了critical section controller的锁名称为动态值,当某个线程调用时,就会自动生成一个新的锁名称。

在这里插入图片描述


版权声明:本文为qq_38368494原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。