2015-08-28 87 views
0

我嘗試按以下方式運行使用Java jmeter nongui命令nongui命令:JMeter的運行使用Java

Runtime rt = Runtime.getRuntime(); 

Process pr = rt.exec("C:\\apache-jmeter-2.13\\bin\\jmeter.bat -t \"C:\\jmeter scripts\\test.jmx\" -n -l \"C:\\jmeter scripts\\nonGUI.csv\""); 

它運行完全正常,直到我添加參數:命令裏面 -Jusers=15上文中提到的下一輪。

的線程數的屬性設置爲:${__P(users,10)}

結果文件似乎並沒有填滿,過程似乎對CPU資源監視器下運行下去。

P.S.:請不要建議我使用blazemeter網站中提供的步驟來運行jmeter文件。它使用了不推薦使用的方法之一,並且沒有針對該網站中可能出現的運行時錯誤給出解決方案。

+0

Jmeter日誌文件是否顯示任何錯誤或幫助點在這個問題? –

+0

你會得到什麼錯誤?請顯示jmeter.log,當它打破時,您還可以顯示完整的代碼嗎? –

+0

沒有錯誤。網絡資源監視器中的進程ID運行一段時間,然後熄滅。但是CPU資源監視器仍然顯示與狀態運行相同的進程ID。 – katebl58

回答

1

我無法重現您的錯誤,但這裏是JMX文件的完整示例。我刪除了對「」的需求。

// OSX exmaple 
    public class r { 
     public static void main(String[] args) throws Exception { 
     Runtime rt = Runtime.getRuntime(); 
     Process pr = rt.exec("/usr/local/bin/jmeter -t /Users/rfriedman/jmeter/SimpleUrl.jmx -Jusers=15 -n -l /Users/rfriedman/jmeter/nonGUI.csv"); 
     } 
    } 

只是爲了確保我跑修改在Windows以及

// Windows Example 
public class r { 
     public static void main(String[] args) throws Exception { 
      Runtime rt = Runtime.getRuntime(); 
      Process pr = rt.exec("C:\\Users\\rfriedman\\Desktop\\apache-jmeter-2.13\\bin\\jmeter.bat -t C:\\Users\\rfriedman\\Desktop\\SimpleUrl.jmx -Jusers=20 -n -l C:\\Users\\rfriedman\\Desktop\\nonGUI.csv"); 
     } 
    } 

JMeter Test Plan

+0

嗨理查德,它打破了用戶只有當他添加-Jusers = 10 –

+0

對不起,我發佈的代碼沒有-J,但我測試了兩個。感謝您的接觸 - 更新示例 –

+0

實際上Windows示例確實有--Jusers = 20 –

0

它的工作原理後,我加入了類似線程數同步定時器的屬性值。

另外,如果我必須以變量的形式傳遞-Jusers的值,該怎麼做呢?我正在嘗試做以下事情。但它沒有被執行。例如: int value = 10; Process pr = rt.exec(「C:\ Users \ rfriedman \ Desktop \ apache-jmeter-2.13 \ bin \ jmeter.bat -t C:\ Users \ rfriedman \ Desktop \ SimpleUrl.jmx -Jusers = value -n - l C:\ Users \ rfriedman \ Desktop \ nonGUI.csv「);

更新:

我與字符串值= 「10」 嘗試;以及。仍然JMeter的日誌說:

「jmeter.reporters.Summariser:摘要= 0中的0 = ******/s的平均值:0最小:9223372036854775807最大:-9223372036854775808錯誤:0(0.00%)」

+0

您是否試圖從命令行傳入? java RunMyTest 50 –

+0

@RichardFriedman,no。我使用eclipse,而java程序有上面的代碼片段。你能告訴我如何在下面的代碼中傳遞變量代替值嗎?它不工作。 int value = 2; 運行時rt = Runtime.getRuntime(); 進程pr = rt.exec(「C:\\ apache-jmeter-2.13 \\ bin \\ jmeter.bat -t \」C:\\ jmeter scripts \\ test.jmx \「-Jusers = value -Jsync =值-n -l「C:\\ jmeter腳本\\ nonGUI.csv \」-j \「C:\\ jmeter腳本\\ jmeterLogs.log \」「); – katebl58

0

使用此片段。

int value = 10; 
Runtime rt = Runtime.getRuntime(); 
Process pr = rt.exec("C:\\apache-jmeter-2.13\\bin\\jmeter.bat" + 
      " -t \"C:\\jmeter scripts\\test.jmx\" -Jusers=" + value + " -Jsync=" + value + 
      " -n -l \"C:\\jmeter scripts\\nonGUI.csv\" -j \"C:\\jmeter scripts\\jmeterLogs.log\""); 
相關問題