1. 程式人生 > >15 jmeter分布式性能測試

15 jmeter分布式性能測試

大並發 serve 兩個 性能測試 兩臺 找到 性能 .bat 過程

背景
由於jmeter本身的瓶頸,當需要模擬數以千計的並發用戶時,使用單臺機器模擬所有的並發用戶就有些力不從心,甚至還會引起Java內存溢出的錯誤。要解決這個問題,可以使用分布式測試,運行多臺機器運用所謂的Agent來分擔jmeter自身的壓力,並借此來獲取更大的並發用戶數,但是需要進行相關的一些修改。
總結一句話,jmeter由java開發,耗內存、cpu,所以大並發下還是需要分布式的。

測試步驟
1.關閉防火墻。
2.在所要運行jmeter並作為負載生成器的機器上安裝jmeter,並確定其中一臺機器作為Controller,其他機器作為Agent。然後運行所有Agent機器上的jmeter-server.bat文件。假定我們使用兩臺機器192.168.0.11和192.168.0.12作為Agent(Agent機器上必須安裝JDK,並設置環境變量)。
3.在Controller機器上的%JMeter_home%/bin目錄下,編輯jmeter.properties中“remote_hosts=127.0.0.1”。其中的127.0.0.1表示運行jmeter Agent的機器,這裏需要修改為“remote_hosts=192.168.0.11:1099,192.168.0.12:1099”,其中的1099為端口號。
4.啟動controller機器上的jmeter.bat,選擇菜單Run中“遠程啟動”中的192.168.0.11:1099或192.168.0.12:1099來分別運行Agent。如果兩個都要執行,可以點擊Run菜單下的“遠程全部啟動”。
5.有時候用作代理的機器太少,仍不能滿足需要,則需要將作為Controller的電腦也當做Agent,則同樣需要修改jmeter.properties文件,將Controller的IP寫入。同時,這個時候需要先打開Controller電腦中%JMeter_home%/bin目錄下的jmeter-server.bat,然後再打開jmeter.bat。此時,進入Run下的“遠程啟動”菜單,可以看到Controller也作為遠程機器進行運行。

常見問題
1.確定在controller機器上安裝jdk版本和jmeter一致。
2.Agent機器啟動jmeter-server.bat時,後臺提示:“Could not find ApacheJmete_core.jar”。
解決方法:這個是開始沒有找到ApacheJmete_core.jar,如果不希望看到Could not find的字樣,需要添加環境變量JMETER_HOME,路徑為bin目錄的上一級目錄,這樣啟動jmeter-server服務時,就不會看到“Could not find ApacheJmete_core.jar”。
3.jmeter分布式控制過程中,各個Agent啟動的線程數等於線程組中的配置。

15 jmeter分布式性能測試