2013-10-02 35 views
0

我有一個場景,其中有內部的,如果控制器如何運行IF控制器內的多個HTTP採樣

當if條件爲真,它只是運行第一個HTTP sampler.Its不執行兩個HTTP採樣HTTP採樣器2。

as example:- 
if-controller (condition true, none of the check-box got checked) 
    ++HTTP sampler1 
    ++HTTP sampler2 

輸出: - 僅HTTP採樣器1運行。即使採樣器1的結果是通過狀態,它也不會執行採樣器2

我知道我可以將它分成兩個if-控制器,它可以正常工作。但我不想那樣。因爲如果我有5個HTTP採樣器要在if-controller的基礎上執行,那麼我不應該將它分割爲5個 - 如果 - 每個控制器都嵌入單個HTTP採樣器。

if-controller (condition true, none of the checkbox got checked) 
    ++HTTP sampler1 
if-controller (condition true, none of the checkbox got checked) 
    ++HTTP sampler2 

有沒有辦法讓所有的HTTP採樣器在IF控制器下面執行並執行。我嘗試了簡單的控制器,但沒有運氣。

+0

我更新了我的答案,如果正常,請回答 –

回答

0

如果Controller將運行其所有的子級採樣器。 您使用的是哪種版本的JMeter?你確定他們不跑? 顯示測試計劃和2個採樣器配置。

我剛剛用2.9測試過,沒問題。

看來你在你的如果控制器狀況有一個問題

$ {reservationCode}!= NULL & & $ {服務Id}!= NULL & & $ {代碼}!= NULL

應該是:

「$ {} reservationCode」= 「空」 & & 「$ {}服務Id」!= 「空」 & & 「$ {}代碼」!= 「空」

+0

遺憾的是它沒有工作。但是在日誌文件中沒有錯誤。 HTTP採樣器2仍然不運行。 – asinha

0

這是我愚蠢的錯誤:-)。我已經添加了if控制器內部for控制器來運行少數http採樣器,然後退出for循環。但是,爲了退出for循環,我添加了BSF後處理器,它導致問題,因爲如果條件中運行了第一個http採樣器,那麼BSF postprocssor被調用並且它正在從for循環中退出。因此,如果循環內部沒有執行第二個http採樣器。我將bsf後處理器更改爲bsf採樣器,並且它工作正常。

for loop 
    if condition 
     http sampler 1 
     http sampler 2 
     BSF post processor for exit from for loop 

改爲

for loop 
    if condition 
     http sampler 1 
     http sampler 2 
     BSF Sampler for exit from for loop 
相關問題