如果为null,请删除HTTP请求PATH变量



我在JMeter、PUT方法中有这个脚本,如果输入数据中的值为空,如何删除路径变量?

我知道,如果参数在HTTP请求的"参数"选项卡中,我可以使用remove Arguments来删除它,问题是我在主体数据中有一个值,所以我必须将URL参数放在路径中,这就是为什么remove Arguments不再起作用的原因。

代码:

if ("${thisfromCSV}" == "") {
sampler.getArguments().removeArgument("thisParameter");
}   

如果该参数位于HTTP请求的"参数"选项卡,则该操作有效

  1. 添加JSR223预处理器作为要修改的HTTP请求的子级
  2. 将以下代码放入"脚本"区域:

    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)
    
  3. 就是这样,如果thisfromCSV变量为空,代码将从Sampler的URL查询字符串中删除thisParameter

有关在JMeter测试中使用Groovy脚本的更多信息,请参阅ApacheGroovy-Why and How You Should Use It。

最新更新