Jmeter之利用IF控制器让采样器按顺序分组执行
先看一下效果:
本文原创,欢迎转发,但转发请务必写出处!
思路:利用2个if控制器(ifA和ifB)判断允许执行的sampler组(采样A组和采样B组)
设置用户定义变量2个(flagA=0,flagB=1;其中0表示执行,1表示不执行),分别给2个if控制器的做判断条件。
ifA中的sampler组执行了N次之后,使用Beanshell的后置处理器将flagA=1,flagB=0;(采样A组不在执行,采样B组执行)
详细说明:
配置1、线程组,记得勾选调度器,用持续时间控制整体测试周期
配置2、用户自定义变量,定义flagA和flagB
一、A组
1、如果(if)控制器1
2、循环控制器1,循环5次,然后执行BeanShellPostProcessor
3、BeanShellPostProcessor脚本
vars.put("project01flag","1"); //让A组停止执行
vars.put("project02flag","0"); //让B组开始执行
二、B组
1、如果(if)控制器2
2、循环控制器2,循环8次,然后执行BeanShellPostProcessor
3、BeanShellPostProcessor脚本
vars.put("project02flag","1"); //让B组停止执行
本文原创,欢迎转发,但转发请务必写出处!
综上所述:
已经可以控制线执行A组中的采样组5次(实际测试中可以多放入几个采样器用于完成一个场景1),然后A组停止开始执行B组中的采样组8次,尽管时间还没有到30秒,但是此时控制A和控制B都停止执行(flagA=1,flagB=1),则此次Jmeter压力测试也结束了。
这只一个思路的实现,并没有经历过真实的压力测试,很有可能因为计数器导致无法产生压力,如果有读者经历实践发现本文章有漏洞请联系作者,不甚感激。