从 csv 读取数据时如何跳过 Jmeter 中 http post 正文中的空白值?
how to skip blank values in http post body in Jmeter while reading data from csv?
下面是我在 jmeter 中的示例主体。我尝试使用带有以下代码的 JSR223 预处理器,但它只删除了第一个 csv 行的空白值。如何删除来自我的 csv 文件的所有空白值?我在这里做错了什么?感谢任何帮助。
**[def request = new groovy.json.JsonSlurper().parseText(sampler.getArguments().getArgument(0).getValue())
def newRequest = evaluate(request.inspect())
request.each { entry ->
if (entry.getValue().equals('')) {
newRequest.remove(entry.getKey())
}
}
sampler.getArguments().removeAllArguments()
sampler.addNonEncodedArgument('', new groovy.json.JsonBuilder(newRequest).toPrettyString(), '')
sampler.setPostBodyRaw(true)][1]**
http 正文:
{
"number": "${number}",
"marker": "${market}",
"description": "${description}"
}
如果您在 Thread Group or Loop Controller 中有超过 1 次迭代,您将需要重新审视您删除和添加请求正文的方法。
建议的代码更改:
def data = new org.apache.jmeter.config.Arguments()
def request = new groovy.json.JsonSlurper().parseText(sampler.getArguments().getArgument(0).getValue())
def newRequest = evaluate(request.inspect())
request.each { entry ->
if (entry.getValue().equals('')) {
newRequest.remove(entry.getKey())
}
}
def body = new org.apache.jmeter.protocol.http.util.HTTPArgument('', new groovy.json.JsonBuilder(newRequest).toPrettyString(), '', false)
body.setAlwaysEncoded(false)
data.addArgument(body)
sampler.setArguments(data)
更多信息:
下面是我在 jmeter 中的示例主体。我尝试使用带有以下代码的 JSR223 预处理器,但它只删除了第一个 csv 行的空白值。如何删除来自我的 csv 文件的所有空白值?我在这里做错了什么?感谢任何帮助。
**[def request = new groovy.json.JsonSlurper().parseText(sampler.getArguments().getArgument(0).getValue())
def newRequest = evaluate(request.inspect())
request.each { entry ->
if (entry.getValue().equals('')) {
newRequest.remove(entry.getKey())
}
}
sampler.getArguments().removeAllArguments()
sampler.addNonEncodedArgument('', new groovy.json.JsonBuilder(newRequest).toPrettyString(), '')
sampler.setPostBodyRaw(true)][1]**
http 正文: {
"number": "${number}",
"marker": "${market}",
"description": "${description}"
}
如果您在 Thread Group or Loop Controller 中有超过 1 次迭代,您将需要重新审视您删除和添加请求正文的方法。
建议的代码更改:
def data = new org.apache.jmeter.config.Arguments()
def request = new groovy.json.JsonSlurper().parseText(sampler.getArguments().getArgument(0).getValue())
def newRequest = evaluate(request.inspect())
request.each { entry ->
if (entry.getValue().equals('')) {
newRequest.remove(entry.getKey())
}
}
def body = new org.apache.jmeter.protocol.http.util.HTTPArgument('', new groovy.json.JsonBuilder(newRequest).toPrettyString(), '', false)
body.setAlwaysEncoded(false)
data.addArgument(body)
sampler.setArguments(data)
更多信息: