jmeter json 路径 bean post 处理器
jmeter json path bean post processor
我使用 JSONPath
提取器
从响应中提取了以下条目
entries = ["e-1553","e-1552","c-1052","e-1551","c-1050",
"e-1550","c-1049","e-1549","c-1051","e-1548",
"c-1048","e-1547","c-1047","e-1546","c-1045",
"e-1545","e-1544","c-1046","e-1543","e-1542",
"c-1026","e-1541","e-1540","e-1539","e-1538",
"c-1025","e-1537","e-1536","c-1024","f-1535",
"f-1534"]
我只想迭代那些以“e-
”开头的条目,例如“e-1553,e-1552"
等在我的 ForEach 控制器中并排除其他条目,例如 "c-1052, c-1050"
等
这样我就可以使用http://somesite.com/e-1553等等
我该怎么做?
鉴于您有 "entries" 变量保存 JSONArray,您可以获得从 "e-" 开始的所有条目,如下所示:
- 在 JSONPath 提取器
之后添加Beanshell PostProcessor
将以下代码放入后处理器的 "Script" 区域:
JSONArray array = JSONArray.fromObject(vars.get("entries"));
int counter = 0;
for (int i=0;i < array.size();i++) {
String s = array.get(i).toString();
if (s.startsWith("e-"))
{
counter++;
vars.put("entry_" + counter, s);
}
}
它将产生如下变量:
entry_1=e-1553
entry_10=e-1544
entry_11=e-1543
entry_12=e-1542
entry_13=e-1541
etc.
然后添加ForEach Controller,配置如下:
- 输入变量前缀:
entry
- 循环的起始索引:
0
- 输出变量名:
current_entry
然后在 HTTP 请求的 Path 中使用 ${current_entry}
。
有关 JMeter 中 Beanshell 脚本的更多信息,请参阅 How to use BeanShell: JMeter's favorite built-in component 指南。
我使用 JSONPath
提取器
entries = ["e-1553","e-1552","c-1052","e-1551","c-1050",
"e-1550","c-1049","e-1549","c-1051","e-1548",
"c-1048","e-1547","c-1047","e-1546","c-1045",
"e-1545","e-1544","c-1046","e-1543","e-1542",
"c-1026","e-1541","e-1540","e-1539","e-1538",
"c-1025","e-1537","e-1536","c-1024","f-1535",
"f-1534"]
我只想迭代那些以“e-
”开头的条目,例如“e-1553,e-1552"
等在我的 ForEach 控制器中并排除其他条目,例如 "c-1052, c-1050"
等
这样我就可以使用http://somesite.com/e-1553等等
我该怎么做?
鉴于您有 "entries" 变量保存 JSONArray,您可以获得从 "e-" 开始的所有条目,如下所示:
- 在 JSONPath 提取器 之后添加Beanshell PostProcessor
将以下代码放入后处理器的 "Script" 区域:
JSONArray array = JSONArray.fromObject(vars.get("entries")); int counter = 0; for (int i=0;i < array.size();i++) { String s = array.get(i).toString(); if (s.startsWith("e-")) { counter++; vars.put("entry_" + counter, s); } }
它将产生如下变量:
entry_1=e-1553
entry_10=e-1544
entry_11=e-1543
entry_12=e-1542
entry_13=e-1541
etc.
然后添加ForEach Controller,配置如下:
- 输入变量前缀:
entry
- 循环的起始索引:
0
- 输出变量名:
current_entry
然后在 HTTP 请求的 Path 中使用 ${current_entry}
。
有关 JMeter 中 Beanshell 脚本的更多信息,请参阅 How to use BeanShell: JMeter's favorite built-in component 指南。