Jmeter中Beanshell预处理器中字符串数组的处理
Process of Array of Strings in Beanshell preprocessor in Jmeter
我有一个 Jmeter(4.0 版)测试脚本,我在其中使用 json 提取器使用 $..Names[ 从响应 json 中获取字符串数组=20=] 并将其存储在变量 groupOfNames 中。各种名称存储为 groupOfNames_1、groupOfNames_2、groupOfNames_ALL.
我需要 POST 调用下一个正文为
{
"name1", "name2", "name3" (--actual values--)
}
如何使用 bean shell 预处理器实现此目的? groupOfNames_ALL 给了我所有的价值,但像这样.... name1, name2, name3(没有引号围绕个人名字)。请帮忙。谢谢
将以下代码放入您的 BeanShell 预处理器:
int matchNr = Integer.parseInt(vars.get("groupOfNames_matchNr"));
for(int i = 1; i <= matchNr; i++){
String Names = vars.get("groupOfNames_" + i);
if(i == matchNr){
vars.put("AllNames", vars.get("AllNames") + "\"" + Names + "\"");
}
else if(i == 1){
vars.put("AllNames","\"" + Names + "\", ");
}
else{
vars.put("AllNames", vars.get("AllNames") + "\"" + Names + "\", ");
}
然后在您的 post 中使用变量 ${AllNames},如下所示:
{
${AllNames}
}
我听说 Groovy is the New Black 所以你可以在每个名字周围加上引号,就像:
vars.put('groupOfNames_ALL',vars.get('groupOfNames_ALL').split(',').collect {"\"$it\"" }.join(', '))
演示:
另外温馨提示:JMeter users are encouraged to use JSR223 Test Elements for any form of scripting since JMeter 3.1
我有一个 Jmeter(4.0 版)测试脚本,我在其中使用 json 提取器使用 $..Names[ 从响应 json 中获取字符串数组=20=] 并将其存储在变量 groupOfNames 中。各种名称存储为 groupOfNames_1、groupOfNames_2、groupOfNames_ALL.
我需要 POST 调用下一个正文为
{
"name1", "name2", "name3" (--actual values--)
}
如何使用 bean shell 预处理器实现此目的? groupOfNames_ALL 给了我所有的价值,但像这样.... name1, name2, name3(没有引号围绕个人名字)。请帮忙。谢谢
将以下代码放入您的 BeanShell 预处理器:
int matchNr = Integer.parseInt(vars.get("groupOfNames_matchNr"));
for(int i = 1; i <= matchNr; i++){
String Names = vars.get("groupOfNames_" + i);
if(i == matchNr){
vars.put("AllNames", vars.get("AllNames") + "\"" + Names + "\"");
}
else if(i == 1){
vars.put("AllNames","\"" + Names + "\", ");
}
else{
vars.put("AllNames", vars.get("AllNames") + "\"" + Names + "\", ");
}
然后在您的 post 中使用变量 ${AllNames},如下所示:
{
${AllNames}
}
我听说 Groovy is the New Black 所以你可以在每个名字周围加上引号,就像:
vars.put('groupOfNames_ALL',vars.get('groupOfNames_ALL').split(',').collect {"\"$it\"" }.join(', '))
演示:
另外温馨提示:JMeter users are encouraged to use JSR223 Test Elements for any form of scripting since JMeter 3.1