2017-05-31 140 views
0

我是JMeter的新手,試圖設置一個測試計劃,我需要根據每個請求傳遞可變數據。例如,我擁有10,000個具有順序唯一ID的產品(PD1 ... PD10000)。我也有250個價格記錄以及序列唯一ID(PR1 .... PR250)。 我希望我的請求能以每種產品ID在價格記錄中循環250次的方式發送。 我試圖設置線程(用戶)計數爲250和循環計數10,000,並使用標準函數$(__ counter(FALSE,)},但這只是得到增加,並超過10,000限制 有人請告訴我如何設置兩個變量或迴路控制器,這樣我可以通過重複數據如JMeter循環計數器

{ ProductId : ${ProductId}, 
    PriceId : ${PriceId} 
} 

其中環產品編號介於1 - 10000和PriceId循環感謝

回答

0

1-250 之間。如果你需要每個產品進行250迭代,那麼線程(用戶)計數應該是10000,循環計數應該是250.假設被替換的值是PD1,PD2等,Create s產品ID和價格ID,參考名稱作爲PRODUCT_ID - (>計數器配置元件)和分別price_id並且如下

{ 
ProductId : PD${product_id}, 
PriceId : PR${price_id} 
} 

計數器參考http://jmeter.apache.org/usermanual/component_reference.html#Counter

否則使用CSV數據集的配置和檢索使用eparate計數器產品和價格ID從CSV文件。 參見:http://jmeter.apache.org/usermanual/component_reference.html#CSV_Data_Set_Config

+0

我嘗試過使用上面的方法,但因爲我的客戶端計算機無法創建10,000個線程而導致內存異常。 – Abdullah

+0

嘗試增加jmeter.bat(windows)中的堆內存 - 默認情況下它將是512MB'set HEAP = -Xms512m -Xmx512m'。或者添加遠程生成器[鏈接] http://jmeter.apache.org/usermanual/remote-test.html –

0

相信While Controller會更容易地使用,例如配置:

  • 雖然控制器,條件:${__javaScript(${counter} < 250,)}

您的要求,請參閱Using the While Controller in JMeter文章更詳細的解釋和一些雖然控制器使用的情況。

我不會推薦使用線程(虛擬用戶)號碼來控制迴路數量,它只需要用於控制負載的只需,您需要以這樣的方式設計您的測試計劃無論定義了多少虛擬用戶,都會執行相同的場景。例如,如果你有1個虛擬用戶,它應該通過所有10000個產品ID記錄並循環250次。如果你有兩個虛擬用戶 - 他們需要採取不同的記錄,所以測試將完成速度提高兩倍,等等。