我正在使用 JMeter 发送 HTTP POST 请求。
我的请求正文是 JSON,例如类似{"Var1": "${Var1}","Var2": ${Var2},"Var3":"${Var3}"}.
这些是在 HTTP 请求的参数中设置的,没有参数名称。这工作正常,我能够使用我在 beanshell 预处理器中设置的变量发送请求(通过设置变量并使用 vars.put() )。
我的问题是如何通过参数的预处理器部分以编程方式发送?例如:
if(a){
send parameters `{"Var1": "${Var1}","Var2": ${Var2}` as my JSON
}
else {
send parameters `{"Var3":"${Var3}"}` as my JSON
}
Run Code Online (Sandbox Code Playgroud)
vars.remove() 对我不起作用,因为它从变量中删除了值,但仍然在请求中发送它(例如 as "${Var1}")。
将预处理器替换为 Beanshell Sampler,它将计算布尔值a并将其作为 var:
vars.put("a", value)
Run Code Online (Sandbox Code Playgroud)
然后使用 2 个If Controller,其中每个控制器都包含一个具有不同参数的采样器。
第一个条件是 ${a},对于 be 来说,它将是 ${a} 的否定。
| 归档时间: |
|
| 查看次数: |
3513 次 |
| 最近记录: |