如何在jMeter中为参数添加多个值

时间:2014-04-25 12:49:42

标签: jmeter beanshell

如何将多个值(使用正则表达式提取器提取这些值)添加到参数中。

我有以下测试: enter image description here

使用正则表达式提取器,我得到以下内容:

enter image description here

现在我正在使用包含以下代码的BeanShell PreProcessor:

int count = Integer.parseInt(vars.get("articleID_matchNr"));
for(int i=1;i<=count;i++) { //regex counts are 1 based
sampler.addArgument("articleIds", "[" + vars.get("articleID_" + i) + "]");
}

使用此选项将生成以下请求:

enter image description here

这将添加多个具有相同名称的参数(articleIds),这将导致我在运行测试时出错。参数的正确形式应为:

articleIds=["148437", "148720"]

articleIds的数量因用户而异。

1 个答案:

答案 0 :(得分:5)

当你为每场比赛添加一个参数时,这是完全可以预料到的。您需要按如下方式修改代码以获得所需的行为:

StringBuilder sb = new StringBuilder();
sb.append("[");
int count = Integer.parseInt(vars.get("articleID_matchNr"));
for (int i = 1; i <= count; i++) {
    sb.append("\"");
    sb.append(vars.get("articleID_" + i));
    if (i < count) {
        sb.append("\", ");
    }
}
sb.append("\"]");
sampler.addArgument("articleIds", sb.toString());

有关JMeter Beanshell脚本手册的更多详细信息和种类,请参阅How to use BeanShell指南。