使用JSON提取器,从响应正文中提取多个值。
调试采样器->例如显示这3个值
ID_1=212
ID_2=211
ID_3=225
如何在下一个HTTP Post Request中使用它们?喜欢如何为每次运行使用一个值?
POST请求正文
{"id"={$ID}} -> doesn't work.
但是,{"id"={$ID_1}}, {"id"={$ID_2}}, {"id"={$ID_3}}
可以单独使用。我想避免每次手动更改POST正文请求。
答案 0 :(得分:0)
在JSON提取器之后(与第一个请求的子项处于同一级别),然后在代码区域中添加以下代码,立即添加BeanShell PostProcessor
int matchNr = Integer.parseInt(vars.get("ID_matchNr"));// ID is the reference name of your JSON Extractor
String ID = "";
for(int i = 1; i <= matchNr; i++){
if(i == 1){
ID = "{\"id\"=" + vars.get("ID_" + i) + "}, ";
}
else if(i == matchNr){
ID = ID + "{\"id\"=" + vars.get("ID_" + i) + "}";
}
else{
ID = ID + "{\"id\"=" + vars.get("ID_" + i) + "}, ";
}
vars.put("IDs", ID);
}
现在在您的POST请求正文中使用变量${IDs}
,该值将类似于{"id"=1}, {"id"=2}, {"id"=3}, {"id"=4}
答案 1 :(得分:0)
您可以根据需要为每个循环使用。检查jmeter ForEach Controller。 ForEach的第一个示例jmx可以满足您的要求。 在reqEx下面提取所有内容。然后forEach将所有regEx输入为“ inputVar”中的输入,并使用returnVar获取它。将returnVar传递给您的下一个HTTP 2请求。
希望这会有所帮助。