Jmeter动态生成请求的JSON负载

我有一个Jmeter测试计划,希望我的HttpSampler发送一个发布请求。

请求的正文应包含Json,如下所示:

{

"productIds" : [

"p1",

"p2",

...

]

}

我已经设置了一个随机变量生成器,该变量生成器在每次调用时都返回格式正确的productId。我想做的是通过直接在请求主体中填充从生成器获取的随机pid的productId来生成有效负载。像这样(假设***是脚本转义符):

{

"productIds" : [

***

for i in (1, $productsCount) {

write("\"$randomPid\"\n")

}

***

]

}

可能吗?如果是,怎么办?如果没有,您将如何处理该问题?

谢谢!

回答:

  1. 将Beanshell PreProcessor添加为要参数化的请求的子代
  2. 将以下代码放入预处理器的“脚本”区域:

        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());

  1. 将您的$ {productsCount}值放入“ Parameters”节中
  2. 根据${json}需要引用生成的有效负载

请参阅如何使用BeanShell:JMeter最喜欢的内置组件指南,以获取有关Apache JMeter中Beanshell脚本的更多详细信息。

以上是 Jmeter动态生成请求的JSON负载 的全部内容, 来源链接: utcz.com/qa/418497.html

回到顶部