2014-03-03 112 views
0

我很沮喪,因爲我沒有得到一個簡單的IF語句觸發,並開始懷疑我不明白IF語句在JMeter中的實現方式。。爲什麼沒有聲明工作?

我想要做的是查詢一個API,它在處理請求時返回202響應,然後返回結果時返回200。最後,如果在得到結果後再次查詢,則返回404。

我有一個執行此查詢沒有條件的,同時控制器和退出的404

這似乎是工作確定。

我想要做的就是確認我已經有效的JSON返回的202和200,但忽略了404

我認爲我可以在迴路每次查詢後添加一個IF控制器運行AA BSF斷言,當我有202或200,但我似乎無法得到它的工作。即使我把「真」或「1 == 1」作爲斷言從未被調用的條件。

"${httpCode}" == "200" 

在我的斷言中,我添加了一個故意的錯誤「eval x;」導致斷言,如果我拖到失敗,並把它放到套件的其他部分 -

try { 
    eval('var response = ' + prev.getResponseDataAsString()); 
    eval x; 
} catch(e) { 
     prev.setSuccessful(false); 
     prev.setResponseMessage("Invalid response. Expected a valid JSON."); 
} 

就像我說的,即使我添加真或1 == 1的斷言錯誤永遠顯示斷言結果。我從根本上誤解了IF控制器的工作方式?當然,與我一起工作的Java程序員在這裏看不到有什麼問題。

不幸的是這個網站不會讓我發佈套件的圖像...

BTW

對不起,問一個「模糊」的問題,但我已經一個多星期了,現在評估JMeter的和在「How To」類型教程中找到缺乏的在線資源。很多對特定JMeter對象和基本「入門」類型帖子的引用,但沒有詳細說明。此外,大多數參考文獻似乎都是循環而且過時的;我不斷重新找回自己在相同的頁面。

apache站點似乎更適合作爲對象引用。

是否有人能夠推薦一個非常好的在線資源?

+0

你爲什麼不嘗試BeanShell的崗前處理器? –

回答

0

你有什麼JMeter版本?在我的ver.2.10中,如果1 == 1的控制器正常工作。

另外我可以推薦你使用如果控制器與 JMeterThread.last_sample_ok function。如果以前的採樣器正常,它將返回true。 你可以使用,如果條件。

+0

謝謝Jay。我想測試響應代碼並針對每種可能的響應採取不同的操作。我最終在Beanshell中實現它,無論如何這可能是一種更加通用的方法。我的版本是2.11。再次感謝。布拉德 – steadyonabix

0

嘗試以下操作:

$ {__的BeanShell( 「$ {} httpCode」 等於( 「200」)。)}

相關問題