JMeter。从 JSON 请求正文中删除参数
JMeter. Remove parameters from JSON request body
我有以下JSON。如果提供了空字符串,我的目标是 post 参数值为“”(空字符串),如果提供了一些预定义的字符串,例如 "nullValue",则从调用中删除参数。
{
"Name": "Some Name",
"AddressLine1": "1st Str.",
"BuyerIdentifier": "nullValue",
}
我查看了几个问题,但那里提供的预处理器解决方案没有一个对我有用。他们大多提供 removeArgument() 方法。
for (Iterator iterator = sampler.getArguments().iterator();){
prop = iterator.next();
String value = prop.getStringValue();
if (value == "nullValue") {
sampler.removeArgument(prop.getName());
}
}
我在下面运行
sampler.getArguments().getArgumentCount()
而它 returns “1”,所以整个 JSON 作为一个参数返回。所以我不能删除个别论点。
谢谢
- 将 JSR223 PreProcessor 添加为具有上述正文的请求的子项
将以下代码放入"Script"区域:
def oldRequest = new groovy.json.JsonSlurper().parseText(sampler.getArguments().getArgument(0).getValue())
oldRequest.values().removeAll{it.equals('nullValue')}
def newRequest = new groovy.json.JsonOutput().toJson(oldRequest)
sampler.getArguments().removeAllArguments()
sampler.setPostBodyRaw(true)
sampler.addNonEncodedArgument('',new groovy.json.JsonOutput().prettyPrint(newRequest),'')
假设您的负载有效 JSON 预处理器将删除所有具有 nullValue
值的 JSON 元素。
更多信息:
我有以下JSON。如果提供了空字符串,我的目标是 post 参数值为“”(空字符串),如果提供了一些预定义的字符串,例如 "nullValue",则从调用中删除参数。
{
"Name": "Some Name",
"AddressLine1": "1st Str.",
"BuyerIdentifier": "nullValue",
}
我查看了几个问题,但那里提供的预处理器解决方案没有一个对我有用。他们大多提供 removeArgument() 方法。
for (Iterator iterator = sampler.getArguments().iterator();){
prop = iterator.next();
String value = prop.getStringValue();
if (value == "nullValue") {
sampler.removeArgument(prop.getName());
}
}
我在下面运行
sampler.getArguments().getArgumentCount()
而它 returns “1”,所以整个 JSON 作为一个参数返回。所以我不能删除个别论点。 谢谢
- 将 JSR223 PreProcessor 添加为具有上述正文的请求的子项
将以下代码放入"Script"区域:
def oldRequest = new groovy.json.JsonSlurper().parseText(sampler.getArguments().getArgument(0).getValue()) oldRequest.values().removeAll{it.equals('nullValue')} def newRequest = new groovy.json.JsonOutput().toJson(oldRequest) sampler.getArguments().removeAllArguments() sampler.setPostBodyRaw(true) sampler.addNonEncodedArgument('',new groovy.json.JsonOutput().prettyPrint(newRequest),'')
假设您的负载有效 JSON 预处理器将删除所有具有 nullValue
值的 JSON 元素。
更多信息: