Jmeter 通过while Controller循环轮询接口同时控制轮询次数

在使用jmeter调用接口时,某些场景需要轮询接口直到接口返回预期的才停止轮询,这种场景在一些异步处理的接口非常常见。如果通过jmeter while controller可以实现这样的目的,但是一旦环境出问题或者其他的原因导致接口一直没有返回预期的结果跳出这个while controller循环,这样会导致线程一直处于运行状态无法自动结束,所以这里在while Controller中的条件可以增加一些轮询次数判断,一旦超过条件中设置的最大轮询次数while controller将不再继续执行。

列举一个场景一个接口提交业务办理请求后,下一个接口去查询处理状态,这个查询状态的接口是异步的。
当status=2时,状态表示处理中,status=5时表示处理成功。按照正常业务流程需要 status=5时,才能正常继续后续的业务流程,这时就用到while controller
1 添加一个test请求,在响应中提取status,BeanShell PostProcessor中添加接口请求次数vars.put("count","1");

 

image.png

 

image.png

 

2 添加while controller,在其中添加test请求 在响应中提取status,BeanShell PostProcessor处理请求次数count+1

 

image.png

 

int count1 = Integer.parseInt(vars.get("count"));
vars.put("count",String.valueOf(count1+1));

3 while controller设置循环条件:{status}==2&&${count}<20,)}
表示 status为2(处理中),且请求查询接口小于20次情况下 继续轮询此接口

image.png


轮询成功:

 

 

相关推荐
©️2020 CSDN 皮肤主题: 技术黑板 设计师:CSDN官方博客 返回首页