Jmeter动态生成请求的json负载
我有一个Jmeter测试计划,希望我的HttpSampler发送post请求 请求正文应包含Json,如下所示:Jmeter动态生成请求的json负载,json,scripting,jmeter,Json,Scripting,Jmeter,我有一个Jmeter测试计划,希望我的HttpSampler发送post请求 请求正文应包含Json,如下所示: { "productIds" : [ "p1", "p2", ... ] } 我已经设置了一个随机变量生成器,它在每次调用时返回格式良好的productId。我想做的是通过在请求体中直接填充从生成器获取的随机pid的ProductID来生成有效负载。类似(假设***是脚本转义): 可能吗?如果是,如何进行?如果没有,你将如何处理这个问题 谢谢 将添加
{
"productIds" : [
"p1",
"p2",
...
]
}
我已经设置了一个随机变量生成器,它在每次调用时返回格式良好的productId。我想做的是通过在请求体中直接填充从生成器获取的随机pid的ProductID来生成有效负载。类似(假设***是脚本转义):
可能吗?如果是,如何进行?如果没有,你将如何处理这个问题
谢谢
StringBuilder结果=新建StringBuilder();
字符串newline=System.getProperty(“line.separator”);
int max=Integer.parseInt(参数);
随机=新随机();
结果。追加(“{”);
结果。追加(“\”productIds\“:[”);
结果.追加(换行符);
对于(int i=1;i
${json}
有关ApacheJMeter中Beanshell脚本的更多详细信息,请参阅 是的,在看到您的答案之前,我就是这样做的,我想知道是否可以直接在http请求负载中执行,但这也没关系。谢谢您可以在请求主体中使用函数,但从编码角度来看,整个方法都是相同的
{
"productIds" : [
***
for i in (1, $productsCount) {
write("\"$randomPid\"\n")
}
***
]
}
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());