jmeter分布式壓測(及問題記錄)


  需要使用jmeter模擬大並發的情況時,單台壓測機不能滿足需求,可進行分布式壓測。

  簡單來說就是,多台機器同時安裝jmeter,選擇一台機器作為調度機,其他作為壓力機。進行相應的配置后,就可以用調度機操控壓力機發起請求。

 

如何配置(以Windows為例):

1.壓力機:

1)執行當前壓力機下jmeter安裝包bin目錄下的jmeter-server的批處理文件,此時該機器上啟動一個java進程,並隨機分配端口,監聽來自調度機的請求。

但是這里我們需要配置成固定端口方式,否則調度機遠程啟動壓力機時,會報錯。

配置固定端口:打開bin目錄下的jmeter.properties文件,更改server_port、server.rmi.localport的端口為要配置的端口。

 

2.調度機:

打開jmeter安裝包bin目錄下的jmeter.properties文件,更改remote_hosts為,壓力機ip及執行jmeter-server后啟動的端口。

 

 開始測試:

  1.調度機正常配置好要測試的地址、參數、監聽器等后,選擇遠程啟動,就可以用剛剛配置好的壓力機,進行壓測了。

 

補充Linux上的配置:

1、啟動slave server 命令:jmeter-server -Djava.rmi.sver.hostname=192.168.0.64

 

 遇到的問題及解決:

1、問題:jmeter4.0,啟動slave報錯 “java.io.FileNotFoundException: rmi_keystore.jks (沒有那個文件或目錄)

  解決:

  方法一:slave的jmeter.properties中,設置“server.rmi.ssl.disable=true”

  原因:jmeter4.0以上的版本,默認啟用RMI連接的安全通信,需要創建密鑰庫。所以將SSL禁用即可。

  方法二:手動生成秘鑰和證書。執行create-rmi-keystore.bat(Windows適用)或create-rmi-keystore.sh(Linux適用)

 

2、問題:調度機遠程調用slave時,連接超時。查看slave上的jmeter-server.log,發現是與調度機的虛擬機網卡連接超時。

   解決:在調度機的jmeter.bat中修改配置指定客戶端的網卡ip.

增加配置項:set rmi_host=-Djava.rmi.server.hostname=xxx.xxx.xxx.xxx 修改配置項:set ARGS=%DUMP% %HEAP% %NEW% %SURVIVOR% %TENURING% %PERM% %CLASS_UNLOAD% %DDRAW% %rmi_host%


注意事項:
1、master、slave的時間要同步,否則tps結果誤差較大。

同步時間的命令:
Windows下:w32tm /config /manualpeerlist:"time.windows.com" /syncfromflags:manu
al /reliable:yes /update
Linux下:ntpdate time.windows.com

 

 

 

參考資料:

http://www.fblinux.com/?p=339

https://www.cnblogs.com/linbo3168/p/6042255.html

https://jmeter.apache.org/usermanual/jmeter_distributed_testing_step_by_step.html

https://stackoverflow.com/questions/50113061/jmeter-4-0-error-starting-remote-server?rq=1

https://www.cnblogs.com/suntingme/p/5995721.html

https://testerhome.com/topics/12474

https://blog.csdn.net/dev666/article/details/79776450

https://blog.51cto.com/ydhome/1862841?source=drt


免責聲明!

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



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