ForEach Controller只支持一个变量作为输入,但是有时候我们其它的输入变量也同步随着ForEach Controller中的变量值不同而不同,我们需要使用多个变量作为输入变量。
除了ForEach控制器中的变量,其它变量我们可以用__V函数和__counter函数(或计数器)来生成Debug sampler/Debug PostProcessor中的变量,__V函数可以处理带有内嵌变量的值,而__counter函数则可以从1递增的生成数字
比如如下场景:
某个班次有班次代码,班次开始时间,班次结束时间。先需要从A表查出这3个变量,然后将这3个变量作为一个insert的输入值,插入到B表,由于B表与A表的班次关系是一一对应的,所以需要用到ForEach控制器来控制。
然而ForEach只支持一个变量的输入,我们怎么引用3个变量呢?这里我们无法通过ForEach控制器直接处理,我们需要借助Jmeter __V函数和计数器来实现
备注:__V函数可以嵌套函数使用
**计数器配置:**一般情况下勾选上与每用户独立的跟踪计数器、在每个线程组迭代上重置计数器
提取的变量:
如下将提取的taskId用于ForEach控制器,其它变量的值随着taskId的不同而变化:
ForEach控制器配置:
ForEach控制器中的变量值:
注意:foreach中的变量必须在此逻辑控制器下面的第一个服务请求中的变量中
变量嵌套使用,其它变量对应的变量值:
ForEach控制器可以嵌套使用
在外层 ForEach 控制器内部添加另一个 ForEach 控制器,对外层获取到的某个参数的多个值,每个值都执行一次服务请求;