2017-06-22 44 views
0

我們有一個工作方式如下服務:JMeter的 - 再使用後續響應數據請求

首先,搜索參數的請求被髮送,爲此我們得到一個searchId。然後使用該searchId繼續獲取信息,直到服務響應沒有剩餘數據(hasMore參數變爲「false」)。

問題是這樣的 - 我已經建立了jMeter發送第一個請求,但不確定如何繼續爲線程組中的每個響應並行發送請求,並且需要您的建議。我的想法是建立另一個線程組,因爲我無法將其設置在第一個線程組中,但是如何獲得響應並對其進行並行處理?

EDITED

這是我結束了。 First Beanshell取樣器提取searchId和hasMore並將其放入變量中。第二個採樣器提取已經越來越多地把它變成變量,覆蓋第一個。最後,While循環按預期工作,使用$ {__ javaScript(「$ {hasMore}」==「1」,)}。

Project Test Plan

回答

1

我會建議您設計如下測試:

這種方式「獲取信息」請求將執行,直到hasMore參數變爲false。有關更多詳細信息,請參見Using the While Controller in JMeter文章。

+0

我已經嘗試了這種方法,但不幸的是後處理器BeanShell腳本被稱爲線程組的外部 - 我注意到這種奇怪的行爲。因此,它也不會進入While控制器,直接進入組外的腳本。 –

+0

然後將JMeter變量轉換爲全局JVM實例的JMeter屬性,請參見[針對一個珍珠二:如何在不同線程組中使用變量](https://www.blazemeter.com/blog/knit-one-珍珠二如何使用變量不同線程組)的細節。 –

0

我建議2線程組

第一線組:

保存searchIds文件(JSR223採樣)或數據庫(JDBC採樣)與鍵計數器(1,2, ...)並將值作爲searchId值

在屬性$ {__ setProperty(threadCount,$ {counter})}中保存多個ID。

第二個線程組:

在定義 - 線程使用$數{__ P(經緯)}

使用$從文件(JSR223採樣)或數據庫(JDBC採樣)

閱讀{ __threadNum}關鍵拿到相關searchId你需要