Jmeter如何進行多服務器遠程測試?

🍅?點擊文末小卡片?,免費獲取軟件測試全套資料,資料在手,漲薪更快??

JMeter是Apache軟件基金會的開源項目,主要來做功能和性能測試,用Java編寫。

我們一般都會用JMeter在本地進行測試,但是受到單個電腦的性能影響,往往達不到性能測試的要求,無法有效的模擬高并發的場景,那么這個時候,我們就可以借由JMeter提供的Romote Test來進行遠程的測試。

其工作方式入下圖:

我們可以在多臺電腦上,啟動JMeter的Romote Testing模式,然后用某一臺服務器作為Master端通過RMI控制Slave端來執行我們的測試腳本。當JMeter Slave端執行完測試腳本后,會將執行結果發送回Master控制端進行匯總,得出整體的測試報表。

JMeter的Romote Test模式的好處就是可以用一臺終端、一個測試計劃在多臺服務器端同時對目標服務器進行測試,并且將測試的結果回報給統一的控制終端進行匯總,方便高并發的測試需求。

下面介紹下JMeter這種遠程測試的使用方法。

Step 1: 在Slave端安裝JMeter
  
JMeter可以從官網下載,下載地址:Apache JMeter - Download Apache JMeter
  
由于JMeter的運行需要Java環境,所以,服務器端也必須安裝Java。
  
注意:為了Remote Testing模式能正常工作,盡量保證Slave端和Master端的JMeter和Java版本一致。
  
Step 2: Slave端運行JMeter

在JMeter的bin目錄下,執行下面命令,就可以以服務的方式啟動JMeter的Slave端:

jmeter-server

JMeter Slave端,默認會啟動RMI(Remote Method Invoke)機制,RMI的默認端口為1029,可以在文件jmeter.properties中進行修改。
  
另外,從JMeter 4.0開始,RMI默認會使用SSL連接,為了能讓Slave端和Master端正常通訊,我們需要生成對應的keys和certificates。在JMeter的bin目錄下,自帶JKS(Java KeyStore)文件生成命令。
  
在JMeter的bin目錄下運行如下的命令,并按照提示符輸入相應的內容:

>bin % ./create-rmi-keystore.sh What is your first and last name?[Unknown]:  rmiWhat is the name of your organizational unit?[Unknown]:  unitWhat is the name of your organization?[Unknown]:  orgWhat is the name of your City or Locality?[Unknown]:  cityWhat is the name of your State or Province?[Unknown]:  provWhat is the two-letter country code for this unit?[Unknown]:  cnIs CN=rmi, OU=unit, O=org, L=city, ST=prov, C=cn correct?[no]:  yesEnter key password for <rmi>(RETURN if same as keystore password):  Re-enter new password: Copy the generated rmi_keystore.jks to jmeter/bin folder or reference it in property 'server.rmi.ssl.keystore.file'

注意:提示符里面的內容,第一條的名字和最后的密碼需要記錄下來,其他的內容可以任意填寫。
  
例如,我這里的第一條填寫的name是rmi,最后的密碼設置為changeit,如果你這里填了其他的值,那么,你需要將你的值寫到jmeter.properties文件中,分別對應兩個屬性:

 server.rmi.ssl.keystore.aliasserver.rmi.ssl.truststore.password

最后,我們還需要按照提示,將生成的rmi_keystore.jks文件復制到需要連接的JMeter的bin目錄下。如果放到其他目錄下,我們需要在jmeter.properties文件中通過server.rmi.ssl.keystore.file指定.jks文件的目錄。

Step 3: Master控制Slave執行測試腳本

在Slave端啟動成功后,我們就可以嘗試在Master端進行連接控制。
  
首先,我們需要將遠程JMeter服務器(Slave端)的IP:Port添加到本地JMeter中,方式是修改本地bin目錄下的jmeter.properties文件,在其中找到remote_hosts,將自己的遠程JMeter的host和端口添加到這里,如果有多個,使用,分隔。

remote_hosts=<server ip>:1199

配置完成后,我們就可以運行命令來執行我們的測試計劃:

./jmeter.sh -n -t test.jmx -r

-r: 會控制在remote_hosts中配置的所有Slave端來執行我們的測試計劃test.jmx;
  
你也可以直接在命令行中來指定想要控制的遠程JMeter的具體IP:Port,命令如下:

./jmeter.sh -n -t test.jmx -R<IP>:1099

問題和解決方案
 
這里可能會出現很多問題,下面列出一些我踩過的坑:

  1. Master報連接被拒絕,這個時候你需要檢查防火墻設置,是否屏蔽了端口;
  2. Slave端啟動時,你會發現每次的端口都是隨機的,這個可能會造成每次都需要去修改防火墻的端口策略,我們可以通過修改jmeter.properties中的server.rmi.localport來設置一個固定端口號;
  3. 某些特殊情況,也會出現客戶端無法連接的問題,比如,有些服務器是有雙網卡的,這個時候,我們可能就需要指定JMeter啟動的服務器端的IP,配置的方式是修改bin/jmeter-server文件,將其中注釋的一行修改如下:
RMI_HOST_DEF=-Djava.rmi.server.hostname=1.2.3.4

這里的1.2.3.4為你要指定的網卡的IP。

最后感謝每一個認真閱讀我文章的人,禮尚往來總是要有的,雖然不是什么很值錢的東西,如果你用得到的話可以直接拿走:

這些資料,對于做【軟件測試】的朋友來說應該是最全面最完整的備戰倉庫,這個倉庫也陪伴我走過了最艱難的路程,希望也能幫助到你!凡事要趁早,特別是技術行業,一定要提升技術功底。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/908339.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/908339.shtml
英文地址,請注明出處:http://en.pswp.cn/news/908339.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Kafka入門-生產者

生產者 生產者發送流程&#xff1a; 延遲時間為0ms時&#xff0c;也就意味著每當有數據就會直接發送 異步發送API 異步發送和同步發送的不同在于&#xff1a;異步發送不需要等待結果&#xff0c;同步發送必須等待結果才能進行下一步發送。 普通異步發送 首先導入所需的k…

分類預測 | Matlab實現CNN-LSTM-Attention高光譜數據分類

分類預測 | Matlab實現CNN-LSTM-Attention高光譜數據分類 目錄 分類預測 | Matlab實現CNN-LSTM-Attention高光譜數據分類分類效果功能概述程序設計參考資料 分類效果 功能概述 代碼功能 該MATLAB代碼實現了一個結合CNN、LSTM和注意力機制的高光譜數據分類模型&#xff0c;核心…

gemini和chatgpt數據對比:誰在卷性能、價格和場景?

先把結論“劇透”給趕時間的朋友&#xff1a;頂配 Gemini Ultra/2.5 Pro 在紙面成績上普遍領先&#xff0c;而 ChatGPT 家族&#xff08;GPT-4o / o3 / 4.1&#xff09;則在延遲、生態和穩定性上占優。下面把核心數據拆開講&#xff0c;方便你對號入座。附帶參考來源&#xff0…

代碼訓練LeetCode(23)隨機訪問元素

代碼訓練(23)LeetCode之隨機訪問元素 Author: Once Day Date: 2025年6月5日 漫漫長路&#xff0c;才剛剛開始… 全系列文章可參考專欄: 十年代碼訓練_Once-Day的博客-CSDN博客 參考文章: 380. O(1) 時間插入、刪除和獲取隨機元素 - 力扣&#xff08;LeetCode&#xff09;力…

C++面試5——對象存儲區域詳解

C++對象存儲區域詳解 核心觀點:內存是程序員的戰場,存儲區域決定對象的生殺大權!棧對象自動赴死,堆對象生死由你,全局對象永生不死,常量區對象只讀不滅。 一、四大地域生死簿 棧區(Stack) ? 特點:自動分配釋放,速度極快(類似高鐵進出站) ? 生存期:函數大括號{}就…

STM32 智能小車項目 L298N 電機驅動模塊

今天開始著手做智能小車的項目了 在智能小車或機器人項目中&#xff0c;我們經常會聽到一個詞叫 “H 橋電機驅動”&#xff0c;尤其是常見的 L298N 模塊&#xff0c;就是基于“雙 H 橋”原理設計的。那么&#xff0c;“H 橋”到底是什么&#xff1f;為什么要用“雙 H 橋”來驅動…

python項目如何創建docker環境

這里寫自定義目錄標題 python項目創建docker環境docker配置國內鏡像源構建一個Docker 鏡像驗證鏡像合理的創建標題&#xff0c;有助于目錄的生成如何改變文本的樣式插入鏈接與圖片如何插入一段漂亮的代碼片生成一個適合你的列表創建一個表格設定內容居中、居左、居右SmartyPant…

MySQL-多表關系、多表查詢

一. 一對多(多對一) 1. 例如&#xff1b;一個部門下有多個員工 在數據庫表中多的一方(員工表)、添加字段&#xff0c;來關聯一的一方(部門表)的主鍵 二. 外鍵約束 1.如將部門表的部門直接刪除&#xff0c;然而員工表還存在其部門下的員工&#xff0c;出現了數據的不一致問題&am…

【 HarmonyOS 5 入門系列 】鴻蒙HarmonyOS示例項目講解

【 HarmonyOS 5 入門系列 】鴻蒙HarmonyOS示例項目講解 一、前言&#xff1a;移動開發聲明式 UI 框架的技術變革 在移動操作系統的發展歷程中&#xff0c;UI 開發模式經歷了從命令式到聲明式的重大變革。 根據華為開發者聯盟 2024 年數據報告顯示&#xff0c;HarmonyOS 設備…

【SSM】SpringMVC學習筆記7:前后端數據傳輸協議和異常處理

這篇學習筆記是Spring系列筆記的第7篇&#xff0c;該筆記是筆者在學習黑馬程序員SSM框架教程課程期間的筆記&#xff0c;供自己和他人參考。 Spring學習筆記目錄 筆記1&#xff1a;【SSM】Spring基礎&#xff1a; IoC配置學習筆記-CSDN博客 對應黑馬課程P1~P20的內容。 筆記2…

借助 Spring AI 和 LM Studio 為業務系統引入本地 AI 能力

Spring AI 1.0.0-SNAPSHOTLM Studio 0.3.16qwen3-4b 參考 Unable to use spring ai with LMStudio using spring-ai openai module Issue #2441 spring-projects/spring-ai GitHub LM Studio 下載安裝 LM Studio下載 qwen3-4b 模型。對于 qwen3 系列模型&#xff0c;測試…

C++學習-入門到精通【13】標準庫的容器和迭代器

C學習-入門到精通【13】標準庫的容器和迭代器 目錄 C學習-入門到精通【13】標準庫的容器和迭代器一、標準模板庫簡介1.容器簡介2.STL容器總覽3.近容器4.STL容器的通用函數5.首類容器的通用typedef6.對容器元素的要求 二、迭代器簡介1.使用istream_iterator輸入&#xff0c;使用…

Vue Router的核心實現原理深度解析

1. Vue Router的基本架構 Vue Router的核心功能是實現前端路由&#xff0c;即在不重新加載頁面的情況下更改應用的視圖。它的基本架構包括&#xff1a; 路由配置&#xff1a;定義路徑與組件的映射關系路由實例&#xff1a;管理路由狀態和提供導航方法路由視圖&#xff1a;渲染…

設計模式——狀態設計模式(行為型)

摘要 狀態設計模式是一種行為型設計模式&#xff0c;核心在于允許對象在內部狀態改變時改變行為。它通過狀態對象封裝不同行為&#xff0c;使狀態切換靈活清晰。該模式包含環境類、抽象狀態類和具體狀態類等角色&#xff0c;具有避免大量分支判斷、符合單一職責和開閉原則等特…

C++ 觀察者模式:設計與實現詳解

一、引言 在現代軟件開發中,組件間的交互與通信是系統設計的核心挑戰之一。觀察者模式(Observer Pattern)作為一種行為設計模式,提供了一種優雅的解決方案,用于實現對象間的一對多依賴關系。本文將深入探討 C++ 中觀察者模式的設計理念、實現方式及其應用場景。 二、觀察…

Windows 賬號管理與安全指南

Windows 賬號管理與安全指南 概述 Windows 賬號管理是系統安全的基礎&#xff0c;了解如何正確創建、管理和保護用戶賬戶對于系統管理員和安全專業人員至關重要。本文詳細介紹 Windows 系統中的賬戶管理命令、隱藏賬戶創建方法以及安全防護措施。 基礎賬戶管理命令 net use…

[藍橋杯]擺動序列

擺動序列 題目描述 如果一個序列的奇數項都比前一項大&#xff0c;偶數項都比前一項小&#xff0c;則稱為一個擺動序列。即 a2i<a2i?1,a2i1 >a2ia2i?<a2i?1?,a2i1? >a2i?。 小明想知道&#xff0c;長度為 mm&#xff0c;每個數都是 1 到 nn 之間的正整數的…

Python 網絡編程 -- WebSocket編程

作者主要是為了用python構建實時網絡通信程序。 概念性的東西越簡單越好理解,因此,下面我從晚上摘抄的概念 我的理解。 什么是網絡通信? 更確切地說&#xff0c;網絡通信是兩臺計算機上的兩個進程之間的通信。比如&#xff0c;瀏覽器進程和新浪服務器上的某個Web服務進程在通…

GM DC Monitor如何實現TCP端口狀態監控-操作分享

本節講解如何通過現有指標提取監控腳本制作自定義的TCP端口監控指標 一、功能介紹 通過提取已有的監控指標的監控命令&#xff0c;來自定義TCP端口的監控指標。 二、配置端口監控 1&#xff09;定位監控腳本 確定腳本及參數如下&#xff1a; check_protocol_tcp.pl --plug…

LabVIEW與Modbus/TCP溫濕度監控系統

基于LabVIEW 開發平臺與 Modbus/TCP 通信協議&#xff0c;設計一套適用于實驗室環境的溫濕度數據采集監控系統。通過上位機與高精度溫濕度采集設備的遠程通信&#xff0c;實現多設備溫濕度數據的實時采集、存儲、分析及報警功能&#xff0c;解決傳統人工采集效率低、環境適應性…