原理
1、Jmeter分布式測試時,選擇其中一臺作為控制機(Controller),其它機器做為代理機(Agent)。
2、執(zhí)行時,Controller會把腳本發(fā)送到每臺Agent上,Agent 拿到腳本后開始執(zhí)行,Agent執(zhí)行時不需要啟動Jmeter,只需要把jmeter-server.bat文件打開,它應該是通過命令行模式來執(zhí)行的。
3、執(zhí)行后,Agent會把結果回傳給Controller,Controller會收集所有Agent的信息并匯總
圖形解釋

環(huán)境
- 兩臺機器:一臺WIN7 一臺win10(筆記本)
- jmeter版本4.0
- jmeter 安裝教程 Jmeter下載安裝,插件使用,mave,git,tomcat環(huán)境變量配置
兩臺機器配置jmeter變量 有多少臺配置多少臺
JMETER_HOME
D:\software\JMETER4.0\apache-jmeter-4.0CLASSPATH
%JMETER_HOME%\lib\ext\ApacheJMeter_core.jar; %JMETER_HOME%\lib\jorphan.jar;path
%JMETER_HOME%\bin;
要做分布式的前提:
- 保持一致:jdk一致、
- jmeter版本一致(本機zip) 腳本最好是放到jmeter的zip
- 插件的一致性
- 網(wǎng)絡 同一個局域網(wǎng)
如何保存2臺機器是在同一個網(wǎng)絡呢?
1. 可以連接同一個wife
2. 出在同一個局域網(wǎng)下面,并且固定好他的IP?如何設置呢?如下操作
- 更改適配器設置,IP設置成固定 其他可以一致。參考關于InletexEMC.exe屏幕共享軟件設置
步驟
step-1. 修改jmeter為中文,并且解決出現(xiàn)亂碼的問題
1).搜索ctrl+f language=en 在下面添加 language=zh_CN

2). 搜索 sampleresult.default.encoding=ISO-8859-1,下面添加sampleresult.default.encoding=UTF-8

包jmetrer打包成zip 傳到執(zhí)行機里面
step2. **執(zhí)行機**修改jmeter.properties
執(zhí)行機修改jmeter.properties文件的相關內(nèi)容 在bin目錄下可以找到這個文件,notepad++打開這個文件
1. 搜索server-port 改成 server_port = 1234 這個端口可以自定義

2.搜索 rmi.port 改成 server.rmi.port = 1234

3.搜索 ssl.disable 改成 server.rmi.ssl.disable=True(去掉認證)

不使用認證證書 因為是在同一個局域網(wǎng)上,不存在安全問題。
4. jmeter bin 目錄啟動服務jmeter-server.bat:
linux bin目錄賦予 執(zhí)行 chmod +x -R bin/ (linux jmeter-server.sh 需要有執(zhí)行權限 chmod 777 jmeter-server.sh )
jmeter bin啟動:sh jmeter-server.sh -Djava.rmi.server.hostname=ip地址
windows下執(zhí): jmeter-server.bat -Djava.rmi.server.hostname=ip地址
- cd 到 jmeter bin目錄,執(zhí)行
jmeter-server.bat -Djava.rmi.server.hostname=ip地址


5. 關閉防火墻:控制面板---windows防火墻

6.telnet的開啟關閉操作 如果本地你已經(jīng)裝好telnet就不用這一步驟




開始--服務--按鍵盤T ---telnet 設置成手動 并且啟動起來

7. 在控制機 CDM輸入 telnet ip 端口號 嘗試連接一下 執(zhí)行機


以上執(zhí)行機操作完畢 接下是配置 控制機
step3. **控制機**修改jmeter.properties
1.打開/bin/jmeter.properties,找到”remote_hosts=127.0.0.1”,進行修改,如下圖所示,這一步的目的是把所有的執(zhí)行機的IP地址都加進來。

2.搜索 ssl.disable 改成 server.rmi.ssl.disable=True(去掉認證)

不使用認證證書 因為是在同一個局域網(wǎng)上,不存在安全問題。
3..搜索 mode=Standard 改成 去掉前面的警號 打開標準模式,能看到jmeter日志

4. 重啟jmeter
腳本開發(fā)
這里我就隨便模擬下,所以我用了假接口取樣器(jp@gc - Dummy Sampler),
監(jiān)聽器:添加了 Summary Report
聚合報告
jp@gc - Active Threads Over Time
jp@gc - Transactions per Second
jp@gc - Response Times Over Time

菜單欄點擊運行--鼠標放在遠程啟動 你配置的執(zhí)行機就會被發(fā)現(xiàn)



我們也可以將控制機也當成執(zhí)行機,講控制機的操作步驟像執(zhí)行機那樣設置一次就可以了



修改一下腳本 把請求放在循環(huán)控制器里面看看總請求是否等于 執(zhí)行機臺數(shù) X 線程數(shù) X 循環(huán)次數(shù)
操作如下圖:



總結:
=========執(zhí)行機配置============
jmeter.properties
server_port = 1234
server.rmi.port = 1234
server.rmi.ssl.disable=true(去掉認證)
linux bin目錄賦予 執(zhí)行 chmod +x -R bin/ (linux jmeter-server.sh 需要有執(zhí)行權限)
jmeter bin啟動:sh jmeter-server.sh -Djava.rmi.server.hostname=IP
windows jmeter-server.bat -Djava.rmi.server.hostname=ip
配置防火墻:systemctl stop firewalld.service
================控制機配置===============
主控機器:jmeter.properties:
remote_hosts= 助攻機器ip:端口
server.rmi.ssl.disable=true
mode=Standard 可選
重啟jmeter