如何在JMeter的Foreach Controller中传入三组变量?
解决方案
可以实现你的需求,但Foreach Controller本身不支持同时指定多个输入变量前缀,得换个思路处理,具体操作如下:
- 先确认你的三个列表变量
uuid_list、file_list、file_path是按JMeter标准列表格式生成的——也就是每个元素对应命名为uuid_list_0、uuid_list_1...file_list_0、file_list_1...以此类推,这是Foreach能识别的前提(你的JSR223 PostProcessor应该已经生成了这种格式的变量)。 - 添加一个Foreach Controller,在「输入变量前缀」里填其中一个列表的前缀,比如
uuid_list(因为三个列表长度一致,用任意一个的迭代索引都能对应另外两个的位置),「输出变量名」可以留空(默认会生成__jm__foreach__idx作为当前迭代的索引值),或者自定义一个比如current_idx。 - 在Foreach Controller下的HTTP请求中,通过索引值来获取对应位置的三个列表元素:
- 获取当前迭代的uuid:
${uuid_list_${__jm__foreach__idx}} - 获取当前迭代的文件名:
${file_list_${__jm__foreach__idx}} - 获取当前迭代的文件路径:
${file_path_${__jm__foreach__idx}}
- 获取当前迭代的uuid:
- 如果你不想依赖Foreach自带的索引变量,也可以在前置的JSR223 PostProcessor里额外生成一个索引列表(比如
index_list,元素为0、1、2...直到列表长度-1),然后Foreach Controller的输入前缀填index_list,输出变量设为idx,之后用${uuid_list_${idx}}这种格式取值即可。
内容的提问来源于stack exchange,提问作者Jyoti Prakash Mallick
相关产品推荐
相关产品推荐

