2015-07-10 115 views
1

我的要求是,只要Jmeter執行過程中出現錯誤,在開始下一次迭代之前應該存在延遲。如何根據響應代碼處理jmeter中的延遲

在線程組級別選擇「開始下一個線程循環」進行採樣器錯誤。由於此Jmeter將在執行過程中出現任何錯誤時啓動新的迭代。

爲此,我在迭代開始時使用了Beanshell Timer。下面的代碼添加延遲如果響應代碼以外的任何其他「200」

String code = prev.getResponseCode(); 
if(code!="200"){ 
log.info("::::::::::::::::::::::::::::Response Code = "+code); 
log.info("sleep for 10sec"); 
return 10000; 
} 
else 
return 0; 

請讓我知道,如果有這樣做的更好的方法。

我相信prev.getResponseCode()也可以用來做任何類型的清理任務,以防有任何錯誤。

就像例如,如果用戶登錄到應用程序並在註銷之前出現錯誤。如果以前的響應代碼出錯,我們可以在迭代開始時進行測試,如果是這樣,我們可以讓用戶註銷應用程序。

回答

1

可以使用這樣做:

$ {__ jexl2( 「$ {} JMeterThread.last_sample_ok」= = 「假」,)}

enter image description here

enter image description here

測試計劃將具有以下佈局:

enter image description here

+0

您的解決方案是正確的。我用一些示例腳本測試過。我也贊成你的解決方案。 問題是我想保持打開狀態,以防有任何其他解決方案。 我有關於腳本開始的錯誤處理的另一個問題。根據我的要求,如果腳本執行中有任何錯誤,下一次迭代應該註銷用戶並在一段隨機時間內休眠,然後繼續正常執行。如果我們在每次迭代開始時清除緩存,會發生什麼? – Vishalendu

+0

嗨,你應該打開另一個問題,並澄清更多一點你的要求。關於通常在幾天後接受答案,你沒有得到更多的答案,但如果給出更好的答案,你總是有可能不接受答案 –