问题描述
就我而言,我创建了一个HTTP请求,其中包含所有可能的参数,如下所示-
我的.csv文件如下所示-
对于某些测试用例,我只需要在一个或两个参数中发送详细信息,而不是全部。现在,如何在同一HTTP请求中执行此操作而不创建新请求?
解决方法
理论上,您只可以发送空的参数值,只需确保CSV文件中具有空白值即可,即:
param1,param2
foo,bar
baz,qux
或者,如果您想从请求中完全删除带有空值的参数,则可以添加一个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将从请求中删除没有各自值的参数:
在上面的示例中,sampler
代表HTTPSamplerProxy,有关所有可用功能说明,请参见JavaDoc
有关JMeter中Groovy脚本的更多信息:Apache Groovy - Why and How You Should Use It