jmeter - 如果为空值,则在 jmeter 中删除 json 参数
问题描述
我有如下请求,我将从csv
文件中传递动态值
"input":[
{
"apiName":"Department",
"apiValue":["SUPPORT"],
"type":"MultiCheckBox",
"contains":false
},
{
"apiName":"Email",
"apiValue":[""],
"type":"email",
"contains":true
}
],
对于电子邮件的上述api值为null,因此在运行请求之前请求应该低于,它应该删除null
{
"apiName":"Department",
"apiValue":["SUPPORT"],
"type":"MultiCheckBox",
"contains":false
}
解决方案
添加JSR223 PreProcessor作为您要参数化的请求的子项
将以下代码放入“脚本”区域:
sampler.getArguments().getArgument(0).value = new groovy.json.JsonBuilder(new groovy.json.JsonSlurper().parseText(sampler.getArguments().getArgument(0).getValue()).input.findAll {item -> item.get('apiValue').get(0) != ''}).toPrettyString()
就是这样,预处理器将“扫描”请求有效负载并删除所有
apiValue
未即时设置的 JSON 对象:
更多信息: