我有一个Jmeter测试计划,我希望我的HttpSampler发送一个帖子请求。
请求的主体应包含Json,如下所示:
{
"productIds" : [
"p1",
"p2",
...
]
}
我已经设置了一个随机变量生成器,可以在每次调用时返回格式正确的productId。我想要做的是通过直接在请求的主体中填充从生成器中获取的随机pid的productIds来生成有效负载。类似的东西(假设***是脚本逃脱):
{
"productIds" : [
***
for i in (1, $productsCount) {
write("\"$randomPid\"\n")
}
***
]
}
有可能吗?如果有,怎么样?如果没有,你会如何处理这个问题?
谢谢!
答案 0 :(得分:10)
将以下代码放入预处理器"脚本"面积:
StringBuilder result = new StringBuilder();
String newline = System.getProperty("line.separator");
int max = Integer.parseInt(Parameters);
Random random = new Random();
result.append("{");
result.append("\"productIds\" : [");
result.append(newline);
for (int i = 1; i < max; i++) {
result.append("\"").append(random.nextInt()).append("\",");
result.append(newline);
}
result.append("]");
result.append(newline);
result.append("}");
vars.put("json", result.toString());
${json}
所需的有关Apache JMeter中Beanshell脚本的更多详细信息,请参阅How to use BeanShell: JMeter's favorite built-in component guide。