如何替换" null"中的json值使用参数在jmeter请求中为空?

时间:2018-02-08 23:25:14

标签: java json performance jmeter load-testing

我正在制作一个jmeter脚本,如下所示,我正在读取旧数据库并将其传递给下面的脚本

Http请求正文数据中的jmeter脚本

  "ID": ${ID}
  "ProductName": "${ProductName}"
  "Name" : "${Name}"
  "NoOfdays": ${Numberofdays}

像这样多达300多个参数

请求 记录#1

" ID":1   " ProductName":" Pixel"   "名称" :" abcd" " NoOfdays":10   ......最多300个参数

记录#2

" ID":1   " ProductName":" null"   "名称" :" null"  " NoOfdays":0   ......最多300个参数

我发送" null"我的ESB服务器抛出错误它期望一个没有引号的null,我如何批量替换这个值比使用by参数明智,这是一个耗时的。

1 个答案:

答案 0 :(得分:0)

从正文中的值中删除引号:

  "ProductName": ${ProductName}
  "Name" : ${Name}

将JSR223 PreProcessor添加到请求中,如果value不为null,则添加引号

if (vars.get("ProductName") != null) {
        vars.put("ProductName", "\"" + vars.get("ProductName")  + "\"")
}
if (vars.get("Name") != null) {
        vars.put("Name", "\"" + vars.get("Name")  + "\"")
}

如果值为“null”,您可以将其处理为:

if (!"null".equals(vars.get("ProductName") )) {
        vars.put("ProductName", "\"" + vars.get("ProductName")  + "\"")
}