如何比较JMeter中定义的用户变量?

时间:2012-05-30 21:31:02

标签: jmeter

这就是我所拥有的:

. . .
Loop Controller
+- HTTP Request getting data from one source
   +- BSF PostProcessor copying the data from the request into variables
+- SOAP/XML-RPC Request getting data from another source
   +- XPath Extractors (several) copying the data from the request into variables
+- If Controller
   +- BSF PostProcessor
. . .

我可以通过View Results Tree使用Debug Sampler正确设置所有变量。

我尝试过几件事。我搜索过的所有内容都表明If Controller是我应该使用的。是的,If控制器已启用。

我真正需要做的是这个比较:"${opp_Name1}" == "${opp_Name1}";< - 我已经做了比较,有没有分号,没有区别。

当我查看“查看结果树”时,似乎没有If控制器正在触发。在If Controller下面,如果条件为真,我有一个BSF PostProcessor来设置另一个变量;运行后,这个新变量不会显示在Debug Sampler中,所有其他变量都会按预期显示在Debug Sampler中。在If Controller中,我还试过运行“将条件解释为变量表达式?”检查和取消选中没有任何区别。

有任何建议或想法吗?

1 个答案:

答案 0 :(得分:1)

嗯。根据以下架构,我可以正常工作:

. . .
Loop Controller
+- BeanShell Sampler : vars.put("var1","test");
+- BeanShell Sampler : vars.put("var2","test");
+- If Controller : "${var1}"=="${var2}"
   +- BeanShell Sampler
. . .

(条件解析为“true”,执行子采样器)。


对此有几点注意事项:

  1. 查看来自IF Controller的可能消息的jmeter.log(%JMETER_HOME%/ bin目录)(如果解释代码时出错,则假定条件为false,并在jmeter中记录消息.LOG)。

  2. 取消选中复选框“将条件解释为变量表达式?”在IF Controller's control panel上 - 如果选中。

  3. 查看答案:JMeter "if controller" with parameters?。这可能会有所帮助。