0

这就是我所拥有的:

. . .
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
. . .

我可以通过查看结果树看到使用调试采样器正确设置的所有变量。

我已经尝试了几件事。我搜索的所有内容都建议我应该使用 If Controller。是的,如果控制器已启用。

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

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

有什么建议或想法吗?

4

1 回答 1

1

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

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

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


对此的几点说明:

  1. 查看 jmeter.log (%JMETER_HOME%/bin 目录) 以获取来自 IF 控制器的可能消息(如果解释代码时出现错误,则假定条件为假,并在 jmeter.log 中记录一条消息)。

  2. 取消选中复选框“将条件解释为变量表达式?” 在IF 控制器的控制面板上- 如果选中。

  3. 调查这个问题的答案:JMeter "if controller" with parameters? . 这可能会有所帮助。

于 2012-05-31T10:28:04.757 回答