【问题标题】:how to replace json values from "null" to null in jmeter request with parameters?如何使用参数将jmeter请求中的json值从“null”替换为null?
【发布时间】:2018-02-08 23:25:13
【问题描述】:

我正在编写如下的 jmeter 脚本,我正在从旧数据库中读取数据并将其传递给下面的脚本

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

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

像这样多达 300 多个参数

请求 记录#1

“ID”:1 “产品名称”:“像素” “名称”:“abcd” “NoOfdays”:10 ...多达 300 个参数

记录#2

“ID”:1 “产品名称”:“空” “名称”:“空” “NoOfdays”:0 ...多达 300 个参数

我的 ESB 服务器在我发送“null”时抛出一个错误,它需要一个不带引号的空值,我如何批量替换这个值而不是按参数使用,这很耗时。

【问题讨论】:

标签: java json performance jmeter load-testing


【解决方案1】:

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

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

向请求添加一个 JSR223 预处理器,如果值不为空,则添加引号

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")  + "\"")
}

【讨论】:

  • 感谢您的回复,我有大约 300 多个参数,包括整数、数字和字符串。我需要摆脱“null”为null的字符串值,对于每个参数,如果我们必须编写它会花费很多时间。在循环中更改值是否更通用。
  • 只需在列表中输入名称并通过列表添加循环
  • log.info("在 ProductName 之前:" + vars.get("ProductName")); if (vars.get("ProductName") != null ) { vars.put("ProductName", "\"" + vars.get("ProductName") + "\""); } log.info("在产品名称之后:" + vars.get("产品名称")); --log 消息 -- 2018-02-12 14:30:01,355 INFO o.a.j.m.JSR223PreProcessor: Before beginReferenceMarkerNumber:null 2018-02-12 14:30:01,357 INFO o.a.j.m.JSR223PreProcessor: After beginningReferenceMarkerNumber:"null"
  • 添加到我的答案句柄“null”
猜你喜欢
  • 2015-01-31
  • 1970-01-01
  • 2021-01-19
  • 1970-01-01
  • 2020-11-09
  • 2019-07-31
  • 2013-08-21
  • 2021-04-04
  • 1970-01-01
相关资源
最近更新 更多