一、背景
脚本中添加了while控制器,该控制器下执行A接口后,从正则表达式提取器提取参数值${getId1_1}
给下一个接口B进行提交;
执行压测时,需要循环执行线程,while控制器中的判断语句 ${__groovy("${getId1_1}"=="",)}
中的参数值${getId1_1}
,在第二轮循环执行时会被认为:不为空(因为第一轮循环执行时获取了值,且这个变量是全局的)导致不执行while控制器中的请求,从而导致下一个接口B提交的参数是已经提交过的,无法提交成功;
( 注:while控制器中的判断语句 ${__groovy("${getId1_1}"=="",)}
意思是:如果${getId1_1}
为空则再次循环,直到查询到结果才跳出循环)
如图:
二、解决思路
接口A提取的参数值${getId1_1}
,在接口B执行后,添加后置处理器将其清空;
三、实现
接口B中,添加BeanShell后置处理器,后置处理器中将${getId1_1}
的值清空:
下面语句的意思为:将${getId1_1}
的值传给变量名“getId1_1“,并赋默认值为空(具体可百度下${__property()}的用法)
${__property(${getId1_1},getId1_1,)}