Jmeter-我有一个以json格式的数组形式从Get请求返回的多个值(至少约250个值),我需要在下一个GET请求中将数组中的每个值作为参数传递>
请求1
> Get http://xxx/store1?
json格式的响应如下所示
{"store1":"peirre","inventorylist":["item1","item2","item3"..........."item250"]}
我将需要像这样在下一个GET请求中使用每一项,以获取价格,可用数量,生产地点等特征,
请求2
Get https://xxx/store1/item1?
Get https://xxx/store1/item2?
Get https://xxx/store1/item3?
当我可以读取响应并将数组中的每个值写入CSV文件时,这很容易,这样我的下一个get请求将只读取CSV文件并触发所有请求
有没有一种方法可以实现?
提前谢谢
答案 0 :(得分:0)
配置如下:
item
$.inventorylist.*
-1
在第一个HTTP请求采样器之后添加ForEach Controller并按以下方式进行配置:
item
current_item
将HTTP Request采样器添加为ForEach Controller的子代,并在“路径”字段中使用https://xxx/store1/${current_item}
-它将遍历所有“项目”
答案 1 :(得分:0)
2。添加一个JSR223后处理器并初始化一个计数器,如下所示
添加以下条件
${__javaScript(parseInt(vars.get("counter"))<=parseInt(vars.get("List_matchNr")))}
如下所示
在您的第二个get请求中,添加一个JSR223后处理器并按如下所示增加计数器
int计数器= Integer.parseInt(vars.get(“ counter”))+1;
vars.put(“ counter”,Integer.toString(counter));
${__V(List_${counter})}
替换硬编码值此循环将遍历匹配编号,并将每个项目的请求发送到服务器
有关while循环的更多信息,请follow the link