性能測試-jmeter實戰4

課程:B站大學
記錄軟件測試-性能測試學習歷程、掌握前端性能測試、后端性能測試、服務端性能測試的你才是一個專業的軟件測試工程師

性能測試-jmeter實戰4

  • jmeter環境搭建
    • 1. 安裝Java環境(必需)
  • JMeter環境搭建完整指南
    • 1. 安裝Java(必需)
      • Windows/macOS安裝步驟
      • 下載jmeter
  • JMeter環境搭建完整指南
    • 1. 安裝Java(必需)
      • Windows/macOS安裝步驟
  • Windows用戶可直接雙擊bin/jmeter.bat
  • Linux/macOS
  • Windows
    • jmeter目錄作用
    • 2. 核心目錄詳解
      • 2.1 bin目錄(最重要)
      • 語言設置
  • 默認保存路徑
      • RMI設置(分布式測試)
      • 安裝插件示例
      • docs目錄(文檔資源)
      • extras目錄
      • 生成HTML報告
      • printable_docs目錄
      • jmeter.properties中修改
      • JMeter核心配置文件說明
      • 配置詳解
      • 1. jmeter.properties


# 性能測試工具 ## ??LoadRunner ??LoadRunner?? 是一款由 ??Micro Focus??(原惠普企業軟件)開發的性能測試工具,廣泛應用于軟件、Web應用、移動應用及企業系統的負載測試和性能分析。 **主要組件**?? ??VuGen??:錄制和編輯測試腳本。 ??Controller??:管理測試場景和調度虛擬用戶。 ??Load Generator??:生成實際負載的機器。 ??Analysis??:分析測試結果并生成報告。 ![在這里插入圖片描述](https://i-blog.csdnimg.cn/direct/d9ac61c2c1334bcdb6061ef08838e21b.png) # Jmeter ??Apache JMeter?? 是一款開源的 ??性能測試?? 和 ??負載測試?? 工具,最初設計用于測試 Web 應用程序,但現已擴展支持多種協議,適用于 API、數據庫、FTP、消息隊列等多種場景。它基于 Java 開發,支持跨平臺運行(Windows、Linux、macOS),廣泛應用于性能測試、壓力測試和功能測試。 ## 主要組件??
  • ??測試計劃(Test Plan)??:測試的頂層結構,包含線程組、采樣器、監聽器等。 ??線程組(Thread
    Group)??:定義并發用戶數(線程數)、循環次數、啟動時間等。
  • ??采樣器(Samplers)??:發送請求(如 HTTP 請求、JDBC 請求)。
  • 監聽器(Listeners)??:收集和展示測試結果(如表格、圖形、日志)。
  • ??配置元件(Config Elements)??:設置請求頭、Cookie、數據庫連接等。
  • 定時器(Timers)??:控制請求之間的延遲(如模擬用戶思考時間)。
    ??## 適用場景??
  • ??Web 應用 & API 測試??:模擬高并發 HTTP 請求,測試 REST/SOAP 接口性能。
  • ??數據庫性能測試??:通過 JDBC 壓測 SQL 查詢效率。
  • 消息隊列測試??:如 Kafka、RabbitMQ 的吞吐量測試。
  • ??文件傳輸測試??:FTP/SFTP 上傳下載性能。
  • ??微服務 & 云原生測試??:結合 Docker/Kubernetes 進行動態擴展測試。

jmeter環境搭建

1. 安裝Java環境(必需)

JMeter環境搭建完整指南

1. 安裝Java(必需)

JMeter基于Java開發,需先安裝JDK 8+(推薦JDK 11或17)

Windows/macOS安裝步驟

  1. 下載JDK:
    • Oracle JDK官網下載
    • OpenJDK下載
  2. 配置環境變量:
    • 新建系統變量JAVA_HOME,值為JDK安裝路徑(如C:\Program Files\Java\jdk-17
    • 編輯系統變量PATH,新增%JAVA_HOME%\bin
  3. 驗證安裝:
   java -version

配置java環境變量即可

下載jmeter

訪問Apache JMeter官網
下載Binary版本(如apache-jmeter-5.6.2.zip)
解壓到指定目錄:
Windows示例:C:\jmeter
Windows配置
新建系統變量JMETER_HOME,值為JMeter解壓目錄
編輯系統變量PATH,新增%JMETER_HOME%\bin
驗證配置:

jmeter -v

命令行模式(壓測用)

jmeter -n -t test.jmx -l result.jtl
  1. 安裝插件(可選)
    下載Plugins Manager
    將下載的plugins-manager.jar放入lib/ext/目錄
    重啟JMeter后,通過菜單安裝插件:
    路徑:Options > Plugins Manager
    推薦插件:
    Custom Thread Groups
    PerfMon(服務器監控)
    WebDriver(瀏覽器驅動)
  2. 驗證安裝
    創建測試計劃:
    右鍵Test Plan → Add → Thread Group
    右鍵Thread Group → Add → Sampler → HTTP Request
    輸入測試URL(如https://example.com)
    右鍵Thread Group → Add → Listener → View Results Tree
    點擊運行按鈕(綠色三角圖標)
    在View Results Tree中查看響應結果
    Master節點配置
    修改bin/jmeter.properties:
remote_hosts=192.168.1.101,192.168.1.102

啟動分布式測試:

jmeter -n -t test.jmx -l result.jtl -R 192.168.1.101,192.168.1.102

常見問題解決
問題現象 解決方案
報錯"Java not found" 檢查JAVA_HOME和PATH配置是否正確
GUI界面卡頓 改用命令行模式執行測試
內存不足錯誤 修改bin/jmeter中的堆內存參數(如-Xms2g -Xmx4g)
中文亂碼 修改bin/jmeter.properties中的language參數、

JMeter環境搭建完整指南

1. 安裝Java(必需)

JMeter基于Java開發,需先安裝JDK 8+(推薦JDK 11或17)

Windows/macOS安裝步驟

  1. 下載JDK:
    • Oracle JDK官網下載
    • 或OpenJDK下載
  2. 配置環境變量:
    • 新建系統變量JAVA_HOME,值為JDK安裝路徑(如C:\Program Files\Java\jdk-17
    • 編輯系統變量PATH,新增%JAVA_HOME%\bin
  3. 驗證安裝:
    java -version
    

Linux(Ubuntu/Debian)安裝

sudo apt update
sudo apt install openjdk-17-jdk
java -version
  1. 下載JMeter
    訪問Apache JMeter官網
    下載Binary版本(如apache-jmeter-5.6.2.zip)
    解壓到指定目錄:
    Windows示例:C:\jmeter
    Linux示例:/opt/jmeter
  2. 配置環境變量(推薦)
    Windows配置
    新建系統變量JMETER_HOME,值為JMeter解壓目錄
    編輯系統變量PATH,新增%JMETER_HOME%\bin
    驗證配置:
jmeter -v

Linux/macOS配置

export JMETER_HOME=/opt/jmeter/apache-jmeter-5.6.2
export PATH=$JMETER_HOME/bin:$PATH
source ~/.bashrc  # 或~/.zshrc
jmeter -v
  1. 啟動JMeter
    GUI模式(測試設計用)
jmeter

Windows用戶可直接雙擊bin/jmeter.bat

https://jmeter.apache.org/images/screenshots/jmeter.png

命令行模式(壓測用)

jmeter -n -t test.jmx -l result.jtl
  1. 安裝插件(可選)
    下載Plugins Manager
    將下載的plugins-manager.jar放入lib/ext/目錄
    重啟JMeter后,通過菜單安裝插件:
    路徑:Options > Plugins Manager
    推薦插件:
    Custom Thread Groups
    PerfMon(服務器監控)
    WebDriver(瀏覽器驅動)
  2. 驗證安裝
    創建測試計劃:
    右鍵Test Plan → Add → Thread Group
    右鍵Thread Group → Add → Sampler → HTTP Request
    輸入測試URL(如https://example.com)
    右鍵Thread Group → Add → Listener → View Results Tree
    點擊運行按鈕(綠色三角圖標)
    在View Results Tree中查看響應結果
  3. 分布式測試配置(可選)
    Slave節點配置

Linux/macOS

jmeter-server

Windows

jmeter-server.bat
Master節點配置
修改bin/jmeter.properties:

remote_hosts=192.168.1.101,192.168.1.102

啟動分布式測試:

jmeter -n -t test.jmx -l result.jtl -R 192.168.1.101,192.168.1.102

常見問題解決

問題現象解決方案
報錯"Java not found"檢查JAVA_HOME和PATH配置是否正確
GUI界面卡頓改用命令行模式執行測試
內存不足錯誤修改bin/jmeter中的堆內存參數(如-Xms2g -Xmx4g)
中文亂碼修改bin/jmeter.properties中的language參數

最佳實踐建議
生產環境壓測務必使用命令行模式
測試腳本建議版本控制(如Git)
長期運行測試建議添加以下監聽器:

Aggregate Report
Response Times Over Time

對于復雜測試場景,建議使用:

CSV Data Set Config(參數化)
Regular Expression Extractor(關聯)

jmeter目錄作用

apache-jmeter-5.6.2/
├── bin/ # 核心可執行文件
├── docs/ # 官方文檔
├── extras/ # 擴展功能
├── lib/ # 依賴庫
├── licenses/ # 許可證文件
├── printable_docs/ # 可打印文檔
└── LICENSE, NOTICE # 法律聲明文件

2. 核心目錄詳解

2.1 bin目錄(最重要)

bin/
├── jmeter.bat # Windows啟動腳本
├── jmeter.sh # Linux/macOS啟動腳本
├── jmeter.properties # 主配置文件(重點!)
├── jmeter.log # 默認日志文件
├── report-template/ # HTML報告模板
├── shutdown.bat # 強制停止腳本
└── system.properties # JVM系統配置

關鍵文件說明

  • jmeter.properties:500+個可配置參數,包括:

語言設置

language=zh_CN

默認保存路徑

save.saveservice.base_directory=/tmp

RMI設置(分布式測試)

remote_hosts=127.0.0.1
lib/
├── ext/ # 擴展插件目錄(重點!)
│ └── JMeterPlugins.jar
├── junit/ # JUnit測試支持
└── log4j2.xml # 日志配置文件
自定義jar包放在lib/ext/下
插件管理:

安裝插件示例

cp plugins-manager.jar lib/ext/

docs目錄(文檔資源)

docs/
├── api/ # JavaDoc文檔
└── demos/ # 示例測試計劃
├── CompoundTest.jmx
└── websocket.jmx

extras目錄

extras/
├── ant-jmeter-1.1.1.jar # Ant集成支持
└── beam2graph.xsl # 報表樣式表

生成HTML報告

jmeter -g results.jtl -o report/

printable_docs目錄

project/
├── testplans/ # .jmx測試腳本
├── datas/ # 測試數據(CSV等)
├── reports/ # 測試結果
└── lib/ # 項目專用jar包

jmeter.properties中修改

默認搜索路徑
search_paths=/path/to/your/lib
CSV文件基準路徑
csvread.default.path=datas/

JMeter核心配置文件說明

文件路徑作用修改建議
bin/jmeter.properties主配置文件修改前建議備份原文件
bin/system.propertiesJVM參數配置調整內存參數(如-Xms1g -Xmx4g)
lib/log4j2.xml日志系統配置修改日志級別(DEBUG/INFO等)

配置詳解

1. jmeter.properties

典型配置項

# 語言設置
language=zh_CN
# 默認端口
server_port=1099
# 分布式測試節點
remote_hosts=127.0.0.1
# jmeter元件作用域
# JMeter元件作用域詳解## 主要作用域類型### 1. 父級作用域
- **定義**:元件只對其直接子級Sampler有效  
- **典型元件**:邏輯控制器(如If Controller、Loop Controller)  
- **示例**:在Loop Controller下添加的Sampler會受到循環控制  ### 2. 同級作用域
- **定義**:元件對同一層級的所有Sampler有效  
- **典型元件**:配置元件(如HTTP請求默認值、HTTP Cookie管理器)  
- **示例**:線程組級別的HTTP請求默認值會影響該線程組內所有HTTP請求  ### 3. 全局作用域
- **定義**:元件對整個測試計劃中的所有Sampler有效  
- **典型元件**:測試計劃級別的配置元件  
- **示例**:在測試計劃根節點添加的User Defined Variables會被所有線程組使用  ## 作用域優先級規則
JMeter遵循以下優先級規則(從高到低):  
1. 子級元件配置  
2. 父級元件配置  
3. 線程組級別配置  
4. 測試計劃級別配置  ## 常見元件作用域詳解### 配置元件
- **作用范圍**:取決于放置位置  
- **線程組內**:僅影響該線程組  
- **測試計劃根節點**:影響所有線程組  ### 前置處理器/后置處理器
- **作用范圍**:僅對同一父級下的Sampler有效  
- **示例**:在某個Sampler前添加的前置處理器只處理該Sampler  ### 斷言
- **作用范圍**:取決于放置位置  
- **Sampler子級**:僅驗證該Sampler響應  
- **父級**:驗證所有子Sampler響應  ### 監聽器
- **作用范圍**:收集其作用域內所有Sampler的數據  
- **線程組級別**:收集該線程組所有Sampler數據  
- **測試計劃級別**:收集所有線程組數據  > **最佳實踐提示**:  
> 1. 共享配置應放在高層級(如測試計劃/線程組級別)  
> 2. 特定配置放在最接近Sampler的位置  
> 3. 使用模塊控制器管理復雜作用域關系  
> 4. 避免不必要的全局配置影響
![在這里插入圖片描述](https://i-blog.csdnimg.cn/direct/d9951e19b86946bd82a72d3e106fd9e9.png)
![在這里插入圖片描述](https://i-blog.csdnimg.cn/direct/d453ad518646411d8d05d61910cc4053.png)
# 實踐是檢驗這里的唯一標準

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

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

相關文章

GPPT(Graph Pre-training and Prompt Tuning)項目復現

GPPT(Graph Pre-training and Prompt Tuning)項目復現 項目概述 GPPT是一種創新的圖神經網絡預訓練與提示調整框架,由MingChen-Sun等人提出。該項目通過將自然語言處理中的提示學習概念引入圖領域,解決了圖預訓練模型在下游任務中的適應性問題。 環境配置 # 創建Python…

anchor 智能合約 IDL 調用

簡介:通過 IDL 生成代碼 調用 anchor 智能合約。 全網首發 使用 anchor 可以快速開發 solana 上面的智能合約 , 在本案例中我們 先使用 anchor 創建一個只能合約( 多個函數方法)。 部署到 dev 鏈上。 通過 anchor 的 IDL 生成 代碼…

【Clickhouse系列】事務

目錄 1. 標準 ACID 支持場景 (MergeTree 引擎家族) 2. 非 ACID 場景 3. 實驗性事務功能 (非云環境) 總結 參考文檔 事務性 (ACID) 支持 | ClickHouse Docs ClickHouse ACID 支持核心要點 1. 標準 ACID 支持場景 (MergeTree 引擎家族) ? 單分區插入 (原子塊) ? ? 原子性…

在cursor中,配置jdk和maven環境,安裝拓展插件

目錄 1.手動配置jdk和maven 2.安裝java拓展插件 1.手動配置jdk和maven 第一步:按ctrl shift p, 搜索“Preferences: Open User Settings (JSON)” 并回車,打開 settings.json 文件 。然后添加或修改以下內容: "java.home": &qu…

(線性代數最小二乘問題)Normal Equation(正規方程)

Normal Equation(正規方程) 是線性代數中的一個重要概念,主要用于解決最小二乘問題(Least Squares Problem)。它通過直接求解一個線性方程組,找到線性回歸模型的最優參數(如權重或系數&#xff…

在架構設計中平衡動態語言與靜態語言部署差異的策略分析

在軟件架構設計過程中,語言的選型不僅僅關乎開發效率,更直接影響系統的部署速度、運行性能與維護成本。動態語言(如 Python、Node.js)部署快、開發靈活;靜態語言(如 Go、Java、Rust)性能強、類型…

我的VSCode中那些插件

前言 最近在研究VUE.JS,而VUE官方推薦使用VSCode作為開發工具,因此最近才開始大量使用這個工具。在使用過程中,總會遇到一些視頻博主推薦某某插件,于是我都將其安裝在我的VSCode上。這里記錄一下,僅供參考。 插件列表…

C# 時間格式日期格式使用合集

一、常用整理 C#時間使用整理,DateTime 使用整理_c#時間格式-CSDN博客 C# 本地時間格式,UTC時間格式,GMT時間格式處理 二、 C#如何獲取今天零點的時間 C# 獲取周一、周日 三、 C#計算兩個時間年份月份差 C#時間點字符串轉換為日期,當…

Ribbon負載均衡的具體實現原理

Ribbon 是 Netflix 開源的一款客戶端負載均衡工具,廣泛應用于微服務架構中,用于在客戶端選擇目標服務實例。 以下是 Ribbon 負載均衡的具體實現原理: 1. 什么是 Ribbon Ribbon 是一個客戶端負載均衡器,負責從服務注冊中心&#…

iOS APP上架App Store實踐:通過自動化流程和輔助工具高效提

在現代開發流程中,持續集成(CI)已經成為必不可少的環節。對于iOS應用的開發與發布,持續集成不僅限于構建過程,還應該涵蓋從代碼提交到版本發布的整個生命周期。然而,由于iOS平臺對開發環境的限制&#xff0…

3443. K 次修改后的最大曼哈頓距離

3443. K 次修改后的最大曼哈頓距離 題目鏈接:3443. K 次修改后的最大曼哈頓距離 代碼如下: class Solution { public:int maxDistance(string s, int k) {int res 0;// 定義一個大小為 X(88)的數組,并初始化為 0int…

【Ubuntu】Windows11安裝虛擬機超詳細圖文教程(VMware17.6.1 + ubuntu-24.04.2)

目錄 前言 一、準備工作 1、工具安裝包 2、獲取方式 3、本人的電腦安裝環境介紹 二、虛擬機磁盤分區(可選) 1、分區助手安裝 2、為虛擬機準備一個單獨的磁盤分區 三、VMware安裝 四、ubuntu鏡像安裝 1、Ubuntu鏡像iso文件加載引導 2、Ubuntu…

計算機視覺(Computer Vision, CV)

目錄 一、核心任務 二、常見應用場景 三、主流技術框架與工具 四、熱門算法簡述 五、發展趨勢 六、計算機視覺學習路線圖(從入門到實戰) 1.階段總覽 2.學習路徑詳解 階段一:CV入門基礎 學習目標: 推薦內容:…

使用Dagster資產工廠模式高效管理重復ETL任務

本文介紹了如何利用Dagster的資產工廠模式來高效管理和自動化重復的ETL(提取、轉換、加載)任務。通過Python函數和YAML配置文件的結合,我們可以輕松地創建和管理大量相似的資產,同時提高代碼的可維護性和可配置性。文章還探討了如…

淺談開源在線客服系統與 APP 集成的技術方案與優劣勢

在為移動端 App 接入在線客服系統的過程中,我經歷了長時間的技術選型探索。最初,我也曾被一些“技術理想主義”選項所吸引,比如讓用戶自己研發界面我提供 API 以獲得最高自由度,或集成 SDK 以追求原生體驗。然而,隨著項…

prometheus+grafana+MySQL監控

prometheusgrafanaMySQL監控 環境說明 操作前提: 先去搭建Docker部署prometheusgrafana...這篇文章的系統 Docker部署prometheusgrafana...的參考文章: Docker部署prometheusgrafana…-CSDN博客 在的節點服務器上搭建MySQL數據庫(可以采用直…

多模態+類人認知:Embodied AI邁向AGI的三大瓶頸與突破路徑

作者:Yequan Wang;Aixin Sun 摘要 AGI常被視為本質上具有具身特性。隨著機器人技術和基礎人工智能模型的最新進展,我們正站在一個新時代的門檻上——這一時代以日益通用化的具身人工智能系統為標志。本文通過提出一個涵蓋五個層級&#xff…

wpf DataTemplate 寬度和控件寬度一樣

wpf DataTemplate 寬度和控件寬度一樣 在WPF中,如果你想要一個DataTemplate的寬度與它內部控件的寬度一致,你可以使用幾種不同的方法來實現這一點。下面是一些常見的方法: 方法1:使用DataTemplate的Width屬性 你可以在DataTemplate中直接設置Width屬性,使其與內部控件的…

C#上位機實現報警語音播報

我們在開發C#上位機時,有時候會需要將報警信息通過語音進行播報,今天跟大家分享一下具體的實現過程。 一、組件安裝 首先我們創建好一個Windows窗體項目,然后添加System.Speech庫引用。 點擊引用,右擊添加引用,在程…

01-StarRocks安裝部署FAQ

StarRocks安裝部署FAQ 概述 本文檔整理了StarRocks安裝部署過程中常見的問題和解決方案,涵蓋了環境準備、集群部署、配置優化等各個方面,幫助用戶快速解決安裝部署過程中遇到的問題。 環境準備FAQ Q1: StarRocks對硬件配置有什么要求? A: StarRocks的硬件配置要求如下:…