JMeter分布式環境,一台Master,一到多台Slave,Master和Slave可以是同一台機器。
前提條件:
所有機器,包括master和slave的機器:
1.運行相同版本的JMeter
2.使用相同的java版本
3.有基於SSL的RMI的有效密鑰庫,或者禁用SSL。(本文舉例中是采用的禁用SSL)
4.都在一個網絡
5.關閉防火牆
三種情形舉例:
每種情形按照以下方式配置好之后,需要在slave的機器上啟動jmeter-server.bat,在master機器上啟動JMeter的界面執行case進行調試。
注意:
slave的機器上可以不放jmeter的腳本,但如果有用到測試數據,就必須把測試數據放到slave機器上去,JMeter中文件的路徑得用絕對路徑,這點不太方便。
我的想法是如果把JMeter的工程配成Maven工程就可以完美的解決這個問題。
1.Master和Slave是同一台機器
- 修改jmeter.properties
remote_hosts=127.0.0.1:1099
server.rmi.ssl.disable=true (關閉RMI)
2.Master和Slave不是同一台
Master:10.86.16.218
- 修改jmeter.properties (用默認端口1099)
remote_hosts=10.86.16.81:1099,10.86.17.82:1099
server.rmi.ssl.disable=true (關閉RMI)
- 在system.proerties的最后加一行
java.rmi.server.hostname=10.86.16.218
Slave1:10.86.16.81
Slave2:10.86.17.82
- 修改jmeter.properties
server.rmi.ssl.disable=true
- 在system.properties的最后加一行
以Slave1舉例,其他Slave也要這么配
java.rmi.server.hostname=10.86.16.81
3.Master和Slave不是同一台
Master:10.86.16.218
- 修改jmeter.properties (用自定義端口,舉例:80)
remote_hosts=10.86.16.81:80,10.86.17.82:80
server.rmi.ssl.disable=true (關閉RMI)
- 在system.properties的最后加一行
java.rmi.server.hostname=10.86.16.218
Slave1:10.86.16.81
Slave2:10.86.17.82
- 修改jmeter.properties
server.rmi.ssl.disable=true
server_port=80
- 在system.properties的最后加一行
以Slave1舉例,其他Slave也要這么配
java.rmi.server.hostname=10.86.16.81
成功的標志:
1.JMeter Master的界面上,遠程啟動菜單可以看到配置的所有的slave
3.Slave上jmeter-server.bat啟動的控制台沒有報錯,顯示測試的開始和結束
4.Slave上的日志\apache-jmeter-5.2.1\bin\jmeter-server.log可以看到腳本執行的信息,沒有報錯
5.Master上通過JMeter界面啟動遠程執行時,結果樹可以看到命令成功返回