在 jmeter 中,我们可以在 HTTP 请求参数部分声明的参数中使用几个参数吗?
In jmeter, can we use few parameters with in what we declared in the HTTP request parameter section
在我的例子中,我创建了一个包含所有可能参数的 HTTP 请求,如下所示 -
我的 .csv 文件如下所示 -
对于某些测试用例,我只需要在一个或两个参数中发送详细信息,而不是全部。现在如何在不创建新请求的情况下在同一个 HTTP 请求中执行此操作?
理论上你可以只发送空参数值,只要确保你在 CSV 文件中有一个空白值,即:
param1,param2
foo,bar
baz,
,qux
或者,如果您想从请求中完全删除具有空值的参数,您可以添加一个 JSR223 PreProcessor 作为 HTTP 请求采样器的子项,并将以下代码放入“脚本”区域:
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
在我的例子中,我创建了一个包含所有可能参数的 HTTP 请求,如下所示 -
我的 .csv 文件如下所示 -
对于某些测试用例,我只需要在一个或两个参数中发送详细信息,而不是全部。现在如何在不创建新请求的情况下在同一个 HTTP 请求中执行此操作?
理论上你可以只发送空参数值,只要确保你在 CSV 文件中有一个空白值,即:
param1,param2
foo,bar
baz,
,qux
或者,如果您想从请求中完全删除具有空值的参数,您可以添加一个 JSR223 PreProcessor 作为 HTTP 请求采样器的子项,并将以下代码放入“脚本”区域:
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