1.簡介
這篇文章其實很簡單,就是為下一篇文章做一個鋪墊,所以巨集哥給小夥伴或童鞋們提前熱身一下。
2.什麼是遠端執行?
遠端執行,就是指令碼放在本地,執行卻在另一臺電腦上執行,當然,可以是遠端多臺電腦一起執行。最常見的場景就是,跑效能測試的時候,一臺電腦負載不起需要的執行緒時,就需要兩臺或者更多的電腦來啟動執行緒跑測試,執行緒就相當於是虛擬使用者。在網上,通常會說,超過1000個執行緒時,就不要使用一臺電腦跑了,而是選擇使用多臺電腦一起負載。這個說法並不全對,比如,指令碼就寫一條insert語句,往資料庫中插入資料,啟20個執行緒跑,估計你的電腦CPU使用率就要100%了。所以,最終還是要看電腦承受得住否,而不是看多少個執行緒,不同的測試指令碼,對測試機的壓力不一樣。很多時候,做效能測試的時候,為了模擬真實的使用者操作,都會加等待時間。比如使用者登入功能,使用者在輸入使用者名稱和密碼的時候,這個時候,伺服器就是在等待,所以指令碼在這裡就會加一個等待時間。
3.為什麼要遠端執行?
Jmeter 是Java 應用,對於CPU和記憶體的消耗比較大,因此,當需要模擬數以千計的併發使用者時,使用單臺機器模擬所有的併發使用者就有些力不從心,甚至會引起JAVA記憶體溢位錯誤。其實,Jmeter的遠端啟動可以幫助我們解決此問題,通過單個 jmeter 客戶端控制多個遠端的jmeter伺服器,使它們同步的對伺服器進行壓力測試。
4.環境
巨集哥的本地環境,如下:
Jmeter版本:5.1.1,如下圖所示:
系統:Windows 10版本 64位系統(32位的同學自己想辦法哦),如下圖所示:
巨集哥的遠端環境,如下:
Jmeter版本:5.1.1,如下圖所示:
系統:Windows 10版本 64位系統(32位的同學自己想辦法哦),如下圖所示:
5.安裝jmeter
分別在本地和遠端機器上安裝jmeter,這裡巨集哥就不做詳細介紹了,不知道的同學可以參考巨集哥的這篇安裝文章:https://www.cnblogs.com/du-hong/p/12894560.html。
6.配置
本地機器:Jmeter安裝路徑的bin下,編輯jmeter.properties檔案,追加如下內容:
# Jmeter遠端啟動:Controller機配置,格式為:“IP1:port1,IP2:port2”,如下只配置了一臺Agent;
remote_hosts=*.*.*.95:1029
遠端機器:Jmeter安裝路徑的bin下,編輯jmeter.properties檔案,追加如下內容:
# Jmeter遠端啟動:Agent機配置
server_port=1029
server.rmi.localport=1029
備註:若出現埠被佔用,Windows上在dos框輸入“netstat -ano”,檢視埠使用情況,這裡推薦使用新的埠;
7.指令碼檔案
巨集哥為了演示,簡單的錄製了一個訪問度孃的指令碼檔案,如下圖所示:
8.啟動
①本地機器:“執行”→“遠端啟動”,可以看到巨集哥配置的遠端機器的IP及埠,如下所示,選擇這臺機器;
②遠端機器:
Jmeter安裝在Windows平臺上:cmd到dos中,進入Jmeter安裝路徑的bin目錄下,執行“jmeter-server”
③檢視本地結果樹,如下圖:
④檢視遠端cmd到dos中,進入Jmeter安裝路徑的bin目錄下,執行“jmeter-server”的視窗,如下圖所示:
至此,遠端啟動執行完畢。
9.小結
1、jmeter安裝在Linux平臺上:進入Jmeter安裝路徑的bin目錄下,執行“./jmeter-server”;
否則會報如下錯誤:“Java.net.ConnectionException: Connection refused:connect”
2、同理如果Jmeter安裝在Linux平臺上:進入Jmeter安裝路徑的bin目錄下,執行“./jmeter-server”;
否則會報如下錯誤:“Java.net.ConnectionException: Connection refused:connect”
3、Jmeter5.2.1,啟動報錯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適用)