2016-11-23 9 views
1

我使用JMeter的與我的PowerShell腳本和我的JMX(XML JMeter的)文件已創建和我啓動非GUI模式的JMeter並通過JMX。但以前它工作正常,但我添加了多個HTTP請求的線程組,現在可能會有一些堆大小問題。所以我想到使用我的自動化腳本(powershell)從命令行禁用一些線程組。請在這個問題上可以幫助我一些身體?????的JMeter:我如何可以從命令行禁用特定線程組

回答

3
  1. 定義(虛擬用戶)的線程的數目使用__P() function像線程組:

    • ${__P(group1threads,)} - 對第一線程組
    • ${__P(group2threads,)} - 對第二線程組
    • Thread Group via Property

  2. 如果要禁用某個線程組 - 通過類似-J命令行參數正好被設置爲0「線程數」:

    jmeter -Jgroup1threads=0 -Jgroup2threads=50 etc 
    

但是一個更好的主意會增加Heap大小,因爲JMeter的默認值非常低(512 Mb),對於測試開發和調試來說很好,但對於真正的負載測試來說絕對不夠。爲了做到這一點,在JMeter啓動腳本中找到以下行:

HEAP=-Xms512m -Xmx512m 

並更新值爲80%的總可用物理RAM。 JMeter重新啓動將需要選擇新的堆大小值。有關JMeter調諧的更多信息,請參閱9 Easy Solutions for a JMeter Load Test 「Out of Memory」 Failure指南。

+0

我增加了Jmeter.bat和Jmeter在bin目錄下的Heap大小,但它仍然不起作用。 –

+0

那麼在這種情況下,您可以嘗試使用[Taurus](http://gettaurus.org/)工具作爲JMeter測試的包裝,它允許定義哪些測試元素(包括線程組)將被禁用,哪些將被禁用在測試運行期間。有關詳細信息,請參見[現有腳本的修改](http://gettaurus.org/docs/JMeter/#Modifications-for-Existing-Scripts)部分。 –

1

這在article中有詳細解釋。當您有多個線程組時,您可以從命令行執行特定線程組。你只需要簡單地使線程組的線程數爲0。

試驗設計:

可以說我有5個線程組這樣的。而不是硬編碼線程數值,使用一些屬性變量。例如:${__P(user.registration.usercount)}

enter image description here

現在我只想User Login & Order Creation執行。這可以通過傳遞屬性直接拋出命令行/傳遞屬性文件名來實現。

屬性:

enter image description here

執行:

jmeter -n -t test.jmx -p mypropfile.properties 

檢查JMeter的命令行選項here

+0

以上解決方案很好,但在每個線程組中添加這種屬性是非常繁瑣的任務。是否有其他解決方案假設我有100個線程組,並且我想在第一次迭代時運行第一個50,在第二次迭代時運行50。意味着如何從命令行中僅選擇前50個。 –

相關問題