JMeter分布式測試


 

作為一個純 JAVA GUI應用,JMeter對於CPU和內存的消耗還是很驚人的,所以當需要模擬數以千計的並發用戶時,使用單台機器模擬所有的並發用戶就有些力不從心,甚至還會引起JAVA內存溢出的錯誤。

 

不過,JMeter也可以像 LoadRunner 一樣通過使用多台機器運行所謂的代理來分擔負載產生器自身的壓力,並借此來獲取更大的並發用戶數,我們只需手動配置一下即可。

 

1、在所有期望運行JMeter作為負載產生器的機器上安裝JMeter,並確定其中一台機器作為控制器,其他的機器作為代理。下面示例中我們以windows服務器為控制器,另兩台linux服務器作為代理。

 

然后運行所有代理機器上的JMeter-server.bat文件(linux服務器上運行Jmeter-server

 

假定我們使用兩台機器172.16.129.155172.16.129.43作為代理

 

 

 

2、在作為Controller控制的windows機器上的操作:

 

Controller控制機器的JMeter安裝目錄下找到 bin 目錄,找到 jmeter.properties 這個文件,使用記事本或者其他文字編輯工具打開它;

 

 

在打開的文件中查找remote_hosts=”這個字符串,找到這樣一行“remote_hosts=127.0.0.1”。其中的 127.0.0.1 表示運行JMeter代理的機器,把它修改為我們需要用到的slave代理機器的ip地址加默認端口號1099:這里需要修改為

remote_hosts=172.16.129.155:1099,172.16.129.43:1099(兩台代理服務器之間用,隔開)

 

再把下面幾項去掉前面的注釋(#):

 

server_port=1099

 

client.rmi.localport=0

 

server.rmi.port=1234

 

server.rmi.localport=1099

 

然后保存文件。

 

 

Controller控制機器的JMeter安裝目錄下找到 bin 目錄,再找到 jmeter.bat 這個文件,使用記事本等其他文字編輯工具打開它;

 

新增set rmi_host=-Djava.rmi.server.hostname=本機ip(控制器ip

修改

Set ARGS=%DUMP% %HEAP% %NEW% %SURVIVOR% %TENURING% %PERM% %DDRAW% %rmi_host%

 

 

然后保存。

 

 

3、在作為代理服務器linux服務器上的操作:

 

修改bin目錄下的jmeter-server文件,

 

去掉#

RMI_HOST_DEF=-Djava.rmi.server.hostname=172.16.129.155

(避免了虛擬機中出現的兩個ip的情況

 

PS:

代理服務器中的hostname/etc/hosts里面ip地址對應的hostname要一致

 

然后保存。

 

 

對要進行分布式測試代理機器上需要添加jmeter環境變量:

 

命令 vim /etc/profile

insert

在文檔最后,添加:

export PATH="/jmeter/apache-jmeter-2.12/bin:$PATH"

esc : w q

保存,退出,然后運行:

#source /etc/profile

不報錯則成功。

 

運行env命令查看全部環境變量,看jmeter環境是否安裝成功。(或者輸入jmeter -v命令

 

windows上相當於添加用戶變量JMETER_HOMEd:\jmeter,系統變量中的path中添加d:\jmeter\bin。)

 

bin目錄下輸入命令

chmod 777 jmeter-server

chmod 777 jmeter

防止權限禁止denied

 

4、確定代理服務器都可以ping到所需要測試的接口的機器,然后啟用所有代理服務器上的jmeter-server

 

如圖為成功啟動代理服務器上的jmeter-server

 

 

啟動控制器機器上的JMeter,並進入啟動 ->遠程啟動菜單項。就會看到我們剛才添加的兩個代理的地址,選中即可運行,如果想同時啟動所有代理,選擇遠程全部啟動即可。

 

 

控制器上的jmeter會收到指示

 

代理機上開始測試和完成測試的指示

 

  

5、注意結果

JMeter遠程啟動測試中出現結果的響應數據為空,原因是:

分布式測試中,通過遠程啟動代理服務器,注重的而是高並發,默認查看結果樹中的響應數據為空,只有錯誤信息會被報回。

 

參考文檔見:(比較完整得介紹了jmeter的分布式)

http://wenku.baidu.com/link?url=Z7s4BBSfD7QuJS7vrtcAoFZo3PvtGvyr1PLKghirA5evrqATCxZQ5B7iADGd83O0DEwaQ3m9PE6xc7EyW1zX8Km4Jdd60ds_E0ZOXSQgo-q

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM