1

我是壓力測試應用程序數據庫。 我已成功設置JDBC連接配置並能夠執行查詢。 要求如下: 將customer_table中的新客戶插入到數據庫中。客戶ID(這是一個列名稱)應該是唯一的,並按順序排列。例如,在customer_table中,如果已經存在100個客戶,那麼添加其他客戶時,customer_id應該以101開頭。 因此,在我的測試計劃中,我需要先使用Select查詢獲取現有客戶的數量,然後執行實際的Insert查詢進行壓力測試。 因此,我在測試計劃中添加了以下內容。在Jmeter中不管線程數是多少,只執行一次採樣請求

  1. 一個帶有select查詢的jdbc請求獲取現有客戶數量(僅在整個測試計劃中使用一次)並將客戶數量保存在變量名稱中。
  2. Counter元素,其中起始值將是第一個jdbc請求的變量名稱並將其加1。
  3. 帶插入查詢的實際JDBC請求。

這種方法的問題是我需要只執行第一次請求一次,而不管線程數是多少。 我嘗試過的替代方法: 我也嘗試創建兩個線程組,並將使用Jmeter屬性的客戶數從第一個線程組傳遞到第二個線程組。但是第二個線程組無法訪問我設置爲Jmeter屬性的第一個線程組中的客戶計數。 任何幫助表示讚賞。

回答

1

把請求下If Controller並使用以下條件:

${__threadNum} == 1 

這樣JMeter會只適用於第一線程中執行採樣。

如果您使用的線程組級別以上的循環中,您可能要修改條件僅在第一循環一樣運行:

${__threadNum} == 1 && ${__groovy(vars.getIteration() == 1,)} 

參考文獻:

+0

謝謝@Dmitri T –

+0

我現在有另一個問題。我正在使用計數器元素和計數器的起始值元素我想使用在前一個樣本的後處理器中創建的jmeter變量。但計數器從值0開始。 –

相關問題