2017-04-05 66 views
0

這裏是圖什麼,我在尋找:如何使用如果控制器BeanShell的後處理器

  1. 如果用戶登錄的零售商然後按照具體要求
  2. 如果用戶登錄的經銷商然後按照具體要求

我已經做了零售商:

  1. 我加入了一個HTTP POST請求登錄爲RET ailer
  2. 還增加的BeanShell PostProcessor中獲得以前的請求,這將是由上述登錄後請求返回的URL。
  3. 我加入以下代碼的BeanShell PostProcessor中,以確保如果返回的URL中包含像「零售商」有任何文字。

代碼:

String URL = prev.getURL().toString(); 
vars.put("URL", URL); 

if (vars.get("URL").contains("retailer")) { 
    log.info("PASS"); 
} else { 
    log.info("FAIL"); 
} 

上面的代碼工作很好。

  1. Next我已添加IF控制器並全部添加零售商在此IF控制器下的相關HTTP請求。現在我不確定我應該寫什麼如果控制器告訴前面的URL是否包含單詞「retailer」,那麼請遵循IF控制器下的所有HTTP請求。

我嘗試下面的IF控制器,但似乎不工作:

"${URL}".contains("retailer") 

我覺得像JMeter的忽略IF控制器,因爲我沒有得到任何錯誤。

目標是執行基於像零售商/經銷商用戶角色的具體要求。

回答

1

您不必在JavaScript 功能,你需要使用indexOf()功能代替你If Controller條件應該是這樣的:

"${URL}".indexOf("retailer") != -1 

記住,總是考慮jmeter.log文件時,您的測試不能按預期工作,在99.9%的案例中,你可以從中找出原因。

+0

我應該剔**解讀條件作爲變量表達**。 –

+0

對於特定情況,這不是必需的 –

相關問題