簡體   English   中英

Jmeter:如果在響應Cookie中找不到特殊字符串,則調用HTTP采樣器請求

[英]Jmeter: Recall HTTP sampler request if a particalar string is not found in response cookie

我必須實現一個方案,如果失敗,我必須最多調用同一請求5次,並且基於響應,我正在文件中寫入一些內容。 當從cookie中找不到字符串時會發生失敗,而我正在捕獲它作為常規exp。

為了解決這個問題,我添加了帶計數器的while循環,但是腳本可以工作到50000次迭代,然后發出內存不足錯誤。 如果我不使用while循環調用5次相同的請求,那么對於具有相同JVM的一百萬個腳本來說,相同的腳本沒有任何問題。

看起來Jmeter中的While控制器以某種方式消耗了更多內存,並耗盡了內存。

是否可以通過Beanshell Post處理器調用相同的HTTP請求?

  1. 使用While控制器計數器組合的方法:

    • While Controller:條件${__javaScript(${counter} < 5 && "${foo}" != "bar",)}
      • 計數器:開始1 ,增量1 ,參考名稱counter
      • 您的采樣器

    假設以上設置, Your Sampler將執行5次,或者直到${foo}變量值不等於bar時執行,直到第一個執行。 有關全面的解釋和更多示例,請參見在JMeter中使用While控制器

  2. 如果您仍在尋找Beanshell方式,則可以使用以下方法:

     if (!prev.getResponseDataAsString().contains("foo")) { ctx.getCurrentSampler().sample(null); } 

    如果響應中沒有foo子字符串,則上述放置在Beanshell PostProcessor中的代碼將再次執行父采樣器,但是這種方式將無法在偵聽器中看到執行結果,也不會將其存儲到中。 jtl文件,基本上您只會執行一次。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM