2012-05-30 35 views
0

這是我有:如何比較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 
. . . 

我可以看到所有的變量被設置正確使用Debug採樣通過查看結果樹。

我試過幾件事。我搜索過的所有東西都提示If Controller是我應該使用的。是的,If控制器已啓用。

我真的需要做的是這個比較:"${opp_Name1}" == "${opp_Name1}"; < - 我已經完成了比較和無分號,沒有區別。

當我查看查看結果樹時,它看起來不是If Controller正在發射。在If Controller下面,如果條件爲真,我有一個BSF PostProcessor來設置另一個變量;這個新變量在運行後不會顯示在Debug Sampler中,所有其他變量都按照預期顯示在Debug Sampler中。在If Controller中,我也嘗試使用「將條件解釋爲變量表達式?」來運行沒有任何區別的選中和取消選中。

任何意見或建議?

回答

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 Controller's control panel - 如果選中。

  3. 查看此答案的答案:JMeter "if controller" with parameters?。這可能會有所幫助。

+0

雖然您的模式與我的模式不一樣,但我確實將您輸入到JMeter中以驗證我得到的結果是否相同。我沒有看到任何證據表明If Controller實際上跑了!我正在運行Apache JMeter版本2.6 r1237317。 – Harlan

+0

@哈倫。順便說一下,我使用了最後一個[2.7](http://jmeter.apache.org/changes.html)。可能是jmeter.log中的東西? –

+0

嗨,親愛的。我查看了日誌文件,沒有發現任何錯誤或者說它跳過了任何內容。我可以獲取最新版本的JMeter並重試。 – Harlan