如何将多个值(使用正则表达式提取器提取这些值)添加到参数中.
我有以下测试:

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

现在我正在使用包含以下代码的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) + "]");
}
Run Code Online (Sandbox Code Playgroud)
使用它将生成以下请求:

这将添加多个具有相同名称的参数(articleIds),这将导致我在运行测试时出错.参数的正确形式应该是:
articleIds=["148437", "148720"]
Run Code Online (Sandbox Code Playgroud)
articleIds的数量因用户而异.
当你在每场比赛中添加一个参数时,这是完全可以预料到的.您需要按如下方式修改代码以获得所需的行为:
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());
Run Code Online (Sandbox Code Playgroud)
有关JMeter Beanshell脚本编写菜单的详细信息和种类,请参见如何使用BeanShell指南.
| 归档时间: |
|
| 查看次数: |
4351 次 |
| 最近记录: |