在jmeter中,我们可以在HTTP请求参数部分中声明的参数中使用几个参数吗?

问题描述

就我而言,我创建了一个HTTP请求,其中包含所有可能的参数,如下所示-

enter image description here

我的.csv文件如下所示-

enter image description here

对于某些测试用例,我只需要在一个或两个参数中发送详细信息,而不是全部。现在,如何在同一HTTP请求中执行此操作而不创建新请求?

解决方法

理论上,您只可以发送空的参数值,只需确保CSV文件中具有空白值即可,即:

param1,param2
foo,bar
baz,qux

enter image description here

或者,如果您想从请求中完全删除带有空值的参数,则可以添加一个JSR223 PreProcessor作为HTTP Request采样器的子代,并将以下代码放入“脚本”区域:

def newData = new org.apache.jmeter.config.Arguments()

0.upto(sampler.getArguments().size() - 1,{ idx ->
    def arg = sampler.getArguments().getArgument(idx)
    if (!arg.getValue().equals('')) {
        newData.addArgument(arg)
    }
})

sampler.setArguments(newData)

这样,JMeter将从请求中删除没有各自值的参数:

enter image description here

在上面的示例中,sampler代表HTTPSamplerProxy,有关所有可用功能说明,请参见JavaDoc

有关JMeter中Groovy脚本的更多信息:Apache Groovy - Why and How You Should Use It