2016-07-14 32 views
1

我在一個有多個選項的網站上測試。如何在jmeter中停止特定條件的線程?

**例如,**

讓我們的主頁(第1採樣),我們有兩種選擇方案A 和選項B.所以,如果我選擇的選項,將導航到 另一頁上說(第二個採樣器),並向我展示關於選項A的一些結果,從 那些結果我將點擊任何結果並轉到下一個 頁面(第三個採樣器)。

但是當我點擊主頁(1採樣)的選項B,沒有結果給我(在第2個採樣),所以我不希望它來導航和執行第三採樣。

如果在選項B的結果頁面中沒有結果,我想停止執行。我應該如何在JMeter中實現它。

回答

1

要做到這一點,你需要在你的選項B添加Beanshell post-processor用下面的代碼:

import org.apache.jmeter.threads.JMeterContextService; 

String prevResult = JMeterContextService.getContext() 
         .getPreviousResult().getResponseDataAsString(); 

if(prevResult == null || prevResult.isEmpty()) // | ---> || 
     JMeterContextService.getContext().getThread().stop(); 

這將檢查以前的響應,如果它的空停止當前線程。如果響應不是空的,測試執行將繼續。

+0

實際上,這些選項正在追加下一個請求,在我點擊它們之後將生成下一個請求。對於不同的選項,沒有不同的採樣器。因此,我應該在何處放置此BeanShell後置處理器? –

+0

您在您的問題中寫道,第二個採樣器將導航到另一個頁面,並且您希望在那裏有有效的響應,因此您應該在其上添加後處理器。 –

+0

嘗試過,但它沒有奏效。 –