2016-12-22 146 views
2

我有50個用戶在我的ThreadGroup中用了50秒(在我的.csv配置文件中有50行)。在某個HTTP請求之後,我想測試一定的條件,如果通過,繼續下一個HTTP請求。軟閱讀谷歌BeanShell斷言與代碼Jmeter如何僅停止一個線程,而不是所有的線程。

String response = SampleResult.getResponseDataAsString(); 
if(response.contains("\"HasError\":true")){ 
     SampleResult.setStopThread(true); 
} 

應該解決我的問題。但問題是,這個函數實際上會停止整個測試執行,所有剩餘的用戶(我可能在.csv文件上有更多的值來測試)。有沒有方便的方法不停止整個測試?如果有人遇到這個問題,請告知。

+0

試試這裏的答案,http://stackoverflow.com/a/22742806/2575259。對於BeanShell Assertion,你可以試試prev.setStopThread(true);但不是SampleResult.setStopThread –

+0

@Naveen沒有爲BeanShell Assertion定義的prev變量。僅可用:失敗,FailureMessage,SampleResult,變量,道具和日誌。 – GordonFreaman

回答

2

您可以通過在thread-group組件中對其進行配置來設置線程停止採樣器錯誤。在'採樣器錯誤後採取的措施'部分標記'停止線程'。 通過配置Response Assertion以確保您收到取樣器錯誤。

+0

感謝您提供此信息。我知道它可能通過線程組級別。但我最初的問題是如何以編程方式在Bean Shell腳本中停止線程。 – GordonFreaman