原理:
1、Jmeter分布式測試時,選擇其中一台作為調度機(master),其它機器做為執行機(slave)。
2、執行時,master會把腳本發送到每台slave上,slave 拿到腳本后就開始執行,slave執行時不需要啟動GUI,我理解它應該是通過命令行模式執行
的。
3、執行完成后,slave會把結果回傳給master,master會收集所有slave的信息並匯總。
前提:
a.jmeter的controller機器和agent機器在同一個網段內
b.可以相互ping通
c.jmeter在controller機器和agent機器環境配置正確,可正常使用
配置:
執行機(slave)配置:
a.修改agent服務器,指定agent機器的IP(遠程master的ip)
修改jmeter-server文件
# vi jmeter-server
修改RMI_HOST_DEF=-Djava.rmi.server.hostname=10.13.225.12
b.自定義端口
1、在slave機的Jmeter的bin目錄下,找到jmeter.properties文件,修改如下兩個配置項,比如我這里修改為1888:
server_port=1888
server.rmi.localport=1888
2、啟動slave機上的jmeter-server.bat,如下圖,端口已經修改為:1888
調度機(master)配置:
a.修改server服務器,指定server機器的IP
修改jmeter.bat文件
新增set rmi_host=-Djava.rmi.server.hostname=110.13.225.12
修改set ARGS=%DUMP% %HEAP% %NEW% %SURVIVOR% %TENURING% %PERM% %DDRAW% %rmi_host%
b.修改slave的IP和Port
找到Jmeter的bin目錄下jmeter.properties文件,修改如下配置,IP和Port是slave機的IP以及自定義的端口
remote_hosts=10.13.223.202:1000,10.13.225.12:1000
多台slave之前用","隔開,我這配置了2台,可以看到標紅的這個就是上面截圖slave的IP和Port.
運行:
執行機:
a.啟動slave機上的jmeter-server.bat
b.控制台信息:開始執行、結束信息如下
調度機:
a.啟動mast機上的jmeter-server.bat
b.打開Jmeter,選擇運行,有運程啟動、運程全部啟動兩個選項: