我在JMeter的PUT方法中有这个脚本, 如果输入数据中的值为空白,如何删除路径变量?
我知道如果参数可以使用remove Arguments放在HTTP请求的Parameter选项卡中,则可以删除它,原因是我在主体数据中有一个值,因此必须将URL参数放在路径中,这就是为什么删除参数不再起作用。
代码:
if ("${thisfromCSV}" == "") {
sampler.getArguments().removeArgument("thisParameter");
}
如果参数位于HTTP请求的“参数”标签中,则此方法有效
答案 0 :(得分:0)
将以下代码放入“脚本”区域:
def url = new URL("http://example.com" + sampler.getPath())
def params = url.query.split('&').collectEntries({ param ->
param.split('=').collect {
URLDecoder.decode(it, 'UTF-8')
}
})
if (vars.get('thisfromCSV') == '') {
params.remove('thisParameter')
}
def query = params.collect { k, v -> "$k=$v" }.join('&')
sampler.setPath(url.path + '?' + query)
就是这样,如果thisParameter
变量为空,则代码将从采样器的URL查询字符串中删除thisfromCSV
。
有关在JMeter测试中使用Groovy脚本的更多信息,请参见Apache Groovy - Why and How You Should Use It。