2012-05-09 39 views
0

我有以下結構的測試部分:JMeter Correlator +交錯控制器在採樣器錯誤上重置?

Test Part 
-Correlator 
--Debug Sampler 
--Interleave Controller 
---Page 1 
---Page 2 
----Response Assertion 
---Page 3 (etc) 
--Regular Expression Extractor 
--Post Debug Sampler 

這是工作的罰款時一切正常,但我一直在添加斷言檢查我收到的答覆是正確的。線程組被設置爲在採樣器故障時啓動下一個循環。當頁面2下的響應斷言失敗時,下一個循環開始,但是當它到達交錯控制器時,它直接跳到第3頁,這引起了問題。

有沒有辦法在採樣器故障時重置交錯控制器狀態?

感謝

Willisterman

回答

0

這是預期行爲;交錯控制器的設計就是這樣工作的。不管你從任何斷言得到什麼結果,它仍然會移動到下一個循環的列表中的下一個採樣器。像這樣:

循環1將執行第1頁
循環2將執行第2頁
循環3將執行第3頁
循環4將執行第1頁
LOOP5將執行第2頁
LOOP6將執行第3頁
LOOP7將執行Page 1
...等。

沒有簡單的方法 - 我知道 - 重置交錯控制器的位置。相反,JMeter中有大量的邏輯控制器(If,While,For Each等)以及計數器甚至beanshell邏輯,因此大多數情況都是可能的。

+0

我使用交錯控制器的唯一原因是在每個頁面請求後運行一個正則表達式提取器。這使我能夠獲得視圖狀態,因爲它是我正在測試的.net系統。 這似乎有點奇怪的行爲,但我可以通過在每個頁面下放置一個正則表達式提取器來替換它......它看起來不會很好,或者易於維護,但... – Willisterman

+0

聽起來像你不需要使用交錯控制器。我只是簡單地將每個請求的正則表達式作爲一個孩子,這是更簡單和更可預測的。我通常以viewstates的方式工作,或者說,我把正則表達式作爲一個孩子,只有那些給我一個我以後需要回發的視圖狀態的請求。 –

+0

我已經把它放回了一個更簡單的佈局,它可以工作。這就是我想要有一個漂亮的佈局。能夠讓調試採樣器自動包裝每個請求是非常有用的。 – Willisterman