性能測試-jmeter實戰3

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

性能測試-jmeter實戰3

  • 負載測試
  • 穩定性測試
  • 負載測試曲線圖
  • 其他測試策略
    • 并發測試
    • 壓力測試
    • 容量測試
  • 性能指標的介紹
    • 響應時間
    • 并發用戶數據
    • 吞吐量
    • 吞吐量TPS
    • 吞吐量QPS
  • 點擊數
  • 錯誤率(異常率)
  • 資源利用率
  • 性能測試流程
    • 性能測試需求分析
    • 性能測試計劃及方案
    • 性能測試用例
    • 測試腳本編寫/錄制
    • 性能測試報告
  • 實踐是檢驗真理的唯一標準


# 基準測試 建立系統性能的基線數據,用于后續優化或版本對比。 關鍵特點??:

??標準化場景??:在固定硬件、軟件配置和測試條件下運行。
??量化指標??:測量響應時間、吞吐量、CPU/內存占用等。
??對比性??:常用于比較不同版本、配置或競品的性能差異。
??典型場景??:

數據庫查詢速度對比(如MySQL vs PostgreSQL)。
新版本API接口的響應時間是否優于舊版本。
硬件選型時測試不同服務器的處理能力。
??工具舉例??:

??Sysbench??(數據庫基準測試)
??Geekbench??(CPU/GPU性能測試)
??JMeter??(HTTP請求基準測試)

負載測試

評估系統在預期或更高負載下的性能表現,識別瓶頸。
關鍵特點??
??模擬真實用戶??:逐步增加并發用戶數或請求量。
??關注閾值??:測試系統在峰值負載下的表現(如最大支持1000并發用戶)。
??性能指標??:TPS(每秒事務數)、錯誤率、資源利用率等。
??典型場景??:
電商網站在促銷期間能否承受10萬用戶同時訪問。
API服務在每秒5000請求時的延遲是否達標。
數據庫在大量寫入操作時的吞吐量極限。
??工具舉例??:
??JMeter??、??Locust??(模擬用戶負載)
??Gatling??(高并發測試)
??k6??(云原生負載測試)

穩定性測試

驗證系統在長時間運行下的可靠性,發現內存泄漏、資源耗盡等問題。
關鍵特點??:
??長時間運行??:持續施壓數小時甚至數天。
??監控異常??:關注內存增長、線程阻塞、日志錯誤等。
??恢復能力??:測試故障后是否自動恢復。
??典型場景??:
服務器連續運行7天后是否出現內存泄漏。
數據庫在持續寫入后是否因連接池耗盡崩潰。
微服務在長時間高負載下是否產生未處理的異常。
??工具舉例??:
??JMeter??(長時間壓力測試)
??Prometheus + Grafana??(監控資源泄漏)
??Chaos Mesh??(注入故障測試恢復能力)

維度基準測試負載測試穩定性測試
目標建立性能基線找出系統負載極限驗證長期可靠性
測試時長短(分鐘級)中(小時級)長(天級)
關鍵指標響應時間、吞吐量最大并發數、錯誤率內存/資源泄漏、錯誤累積
適用階段開發早期/版本迭代上線前性能驗證上線前/運維期

負載測試曲線圖

在這里插入圖片描述

  • ??橫軸(X軸)??:??并發用戶數??(負載量),從低到高遞增。
  • ??縱軸(Y軸)??:
  • ??Utilization (U)??:系統資源利用率(如CPU、內存),綠色曲線。
  • ??Throughput (X)??:系統吞吐量(每秒處理請求數),紫色曲線。
  • ??Response Time ???:請求響應時間,紅色曲線。
區域特征性能表現
輕載區并發用戶數較少(左側)- 資源利用率(U)線性增長
- 吞吐量(X)快速上升
- 響應時間(R)穩定低位
最佳并發點The Optimum Number of Concurrent Users(圖中標注點)- 吞吐量(X)達到理想值
- 響應時間(R)仍可控
- 資源利用率(U)未飽和
重載區并發用戶數超過最佳點(Heavy Load)- 資源利用率(U)接近瓶頸
- 吞吐量(X)增速放緩
- 響應時間(R)明顯上升
最大并發點The Maximum Number of Concurrent Users(圖中臨界點)- 吞吐量(X)達到峰值
- 響應時間(R)陡增
- 資源利用率(U)飽和(100%或更高)
瓶頸區超過最大并發點(右側Buckle Zone)- 資源飽和:系統過載
- 吞吐量下降:請求堆積/超時
- 用戶體驗惡化:高延遲或錯誤
??故障表現??:
超過最大并發點后,系統可能出現:
  1. 錯誤率上升(如HTTP 503)
  2. 資源耗盡(數據庫連接池滿、線程阻塞)
  3. 響應時間不可接受(用戶流失)。

測試策略:

  1. 通過逐步增加并發用戶數,定位圖中的??最佳點??和??最大點??。

??監控指標??:

  1. 重點關注吞吐量拐點和響應時間突變位置。

其他測試策略

并發測試

驗證系統在??多用戶同時操作??時的功能正確性和資源競爭問題(如死鎖、數據臟讀)。
關鍵特點??
??模擬真實并發??:多個線程/用戶同時執行相同或不同操作。
??關注點??:
數據一致性(如庫存超賣)
資源競爭(如數據庫連接池耗盡)
線程安全(如全局變量沖突)
??測試場景??:
100個用戶同時提交訂單
多線程并發修改同一數據庫記錄
??工具示例??
??JMeter??(線程組模擬并發用戶)
??LoadRunner??(虛擬用戶并發控制)
??Gatling??(高并發場景設計)

壓力測試

評估系統在??超過正常負載??時的表現,定位崩潰臨界點及恢復能力。
??關鍵特點??
??極端條件??:持續施壓直至系統崩潰(如CPU 100%、內存耗盡)。
??關注點??:
系統崩潰閾值(如最大支持5000并發)
錯誤處理機制(如熔斷降級)
故障恢復時間(如自動重啟后恢復速度)
??測試場景??:
短時間內涌入10倍正常流量
強制關閉服務后驗證自愈能力
??工具示例??
??JMeter??(階梯式加壓)
??k6??(混沌工程壓力注入)
??Chaos Mesh??(模擬網絡中斷、資源枯竭)

容量測試

確定系統在??長期運行??下的最大承載能力,為擴容提供數據支撐。
關鍵特點??
??可持續負載??:長時間維持高負載(如24小時80%資源占用)。
??關注點??:
資源泄漏(如內存泄漏、線程堆積)
性能衰減(如數據庫查詢變慢)
擴展性建議(需增加多少服務器)
??測試場景??:
持續7天模擬2000并發用戶
數據庫每日寫入100萬條記錄后的性能變化
??工具示例??
??Locust??(長時間穩定負載模擬)
??Prometheus + Grafana??(監控資源泄漏)
??阿里云PTS??(云環境容量規劃)

性能指標的介紹

響應時間

定義
響應時間指用戶從客戶端發起一個請求開始,到客戶端接收到從服務器端返回的結果,整個過程所耗費的時間。

【組成】
響應時間 = 網絡時間 + 應用程序處理時間

并發用戶數據

并發測試的用戶數(并發:同時運行請求)

  • 系統用戶數??:系統注冊的總用戶數據
  • 在線用戶數??:某段時間內訪問系統的用戶數,這些用戶并不一定同時向系統提交請求
  • 并發用戶數??:某一物理時刻同時向系統提交請求的用戶數

吞吐量

定義:吞吐量(Throughput)指的是單位時間內處理的客戶端請求數量,直接體現軟件系統的性能承載能力。

  1. 從業務角度來看,吞吐量也可以用“業務數/小時”、“業務數/天”、“訪問人數/天”、“頁面訪問量/天”來衡量。
  2. 從網絡角度來看,還可以用“字節數/小時”、“字節數/天”等來衡量網絡的流量。
  3. 從技術指標來看,可以用每秒事務數(TPS)和每秒查詢數(QPS)來衡量服務器具體性能處理能力。

吞吐量TPS

TPS:每秒事務數:單位時間內系統處理的客戶端請求的事務次數
計算??
TPS = 并發數 / 平均響應時間
??事務??
事務即業務請求,對應界面上一個或多個操作。以支付請求為例:

  • 包含服務器查詢用戶余額
  • 支付安全校驗等多個請求
  • 最終定位到服務器對應的業務請求代碼(可能為單段或多段代碼)
    在jmeter中可以用事務控制器組合一系列接口請求為一個事務,子事務上有父事務等。
    jmeter示例:
    測試計劃
    └── 事務控制器(名稱:完整下單事務)
    ├── HTTP請求 1 (登錄接口)
    ├── HTTP請求 2 (添加購物車)
    └── HTTP請求 3 (提交訂單)

吞吐量QPS

TPS:每秒查詢數:一個QPS是一個接口請求
應用場景:
控制服務器每秒處理指定請求數。如:控制服務器達到每秒60QPS,服務器的性能各項性能指標是否正常(服務器處理能力一個重要指標)。

點擊數

定義:點擊數是衡量Web服務器處理能力的一個重要指標。
??提示??

  • 點擊數不是通常認為的訪問一個頁面就是1次點擊數,而是該頁面包含的元素(圖片、鏈接等)向服務器發出的請求數量。
  • 通常用每秒點擊次數(Hits per Second)指標來衡量Web服務器的處理能力。
    大白話:靜態資源請求數量==點擊數
    ??注意??
    只有Web項目才有此指標。
    主要用于衡量web服務器: Apache HTTP Server?,Nginx?,LiteSpeed?,Caddy?, Tomcat (Apache Tomcat)?
    目前主流的有老項目:Tomcat,新項目專用:Nginx。

錯誤率(異常率)

定義:錯誤率指系統在負載情況下,失敗業務的概率。
計算公式為:
??錯誤率 = (失敗業務數 / 業務總數) × 100%??
??提示??
不同系統對錯誤率要求不同,但一般不超過千分之五(≤0.5%);
穩定性較好的系統中,錯誤率應由超時引起(即表現為超時率)。
錯誤率大多數是超時,資源耗光導致,所以有資源,擴容,搭建好的集群環境非常重要。

資源利用率

定義:是指系統各種資源的使用情況,一般用“資源的使用量/總的資源可用量×100%”形成資源利用率的數據。
大多數情況下:一個服務器上的基準
通常,沒有特殊需求的話:
建議CPU不高于80%(±5);
內存不高于80%;
磁盤不高于90%;
網絡不高于80%。
若高于以上數值,則可能存在問題
在這里插入圖片描述

性能測試流程

  • 性能測試需求分析
  • 性能測試計劃及方案
  • 性能測試用例
  • 測試腳本編寫/錄制
  • 建立測試環境
  • 執行測試腳本
  • 性能測試監控
  • 性能分析和調優
  • 性能測試報告總結
    性能測試流程:無他,唯手熟爾

性能測試需求分析

第一要點:
● 熟悉被測系統
○ 熟悉系統的業務功能
○ 熟悉系統的技術架構
第二要點
● 明確性能測試內容
○ 從業務角度,挑選核心業務進行測試
○ 從技術角度,挑選邏輯復雜度高、數據量大的業務進行測試
第三要點
● 確定測試策略
○ 負載測試、穩定性等
第四要點
● 確定性能測試指標
○ 有需求:按照需求來測試
○ 沒有需求:同類型軟件對比,對未來數據進行預估

性能測試計劃及方案

性能測試實施文檔也是一份重要的文檔
主要內容:

  • 項目背景 – 簡介
  • 測試目的
  • 測試范圍 – 對于需求分析中的性能測試內容
  • 測試策略–對應需求分析中的測試策略
  • 風險控制–技術風險
  • 交付清單
  • 進度與分工

性能測試用例

要素:用例標題、用例編號、用例預制條件、用例步驟、用例預期結果、用例實際結果
在這里插入圖片描述

測試腳本編寫/錄制

1、測試腳本編寫/錄制??
說明:性能測試用例編寫完成以后,接下來就需要結合用例的需要,進行測試腳本的編寫工作。
提示:錄制或編寫,根據不同的工具要注意代碼冗余。

?2、建立測試環境??
說明:在進行性能測試之前,需要先完成性能測試環境的搭建工作,測試環境一般包括硬件環境、軟件環境及網絡環境。
提示:一般情況下可以要求運維和開發工程師協助完成。

??3、 執行測試腳本??
說明:先保證腳本調試通過之后,才能進入正式壓測階段。
執行測試腳本時,要先進行性能運行場景的設置,再運行腳本。

性能測試報告

報告無需多說,文檔,但也很重要,做為性能最終結果也是優化的重要依據
在這里插入圖片描述
性能測試類型:
在這里插入圖片描述
總結下性能測試理論知識:

  • 響應實踐:從客戶端發送請求到服務器響應的全部時間=應用程序處理時間和網絡事件之和=
  • 并發數:同一時刻在向服務器發送請求的用戶數
  • 吞吐量:單位時間內服務器處理請求的數量
  • QPS:每秒查詢數(每秒請求數)
  • TPS:每秒事務數,TPS=并發數(在同一秒內發送的請求數)/響應時間(所有請求的平均響應時間)
  • 錯誤率:超時,資源耗盡導致的500請求(性能負載的場景下,失敗事務數占總的事務數的比例)
  • 點擊數:web項目,靜態資源請求web服務器(nginx、tomact)的次數等
  • 資源利用率:主要是指CPU均值,磁盤IOPS峰值,內存增長值

實踐是檢驗真理的唯一標準

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

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

相關文章

Maven鏡像

在 Maven 中配置多個鏡像源,主要是為了解決依賴包在不同地區下載速度不同的問題,或者為了使用特定的私有倉庫作為依賴源。Maven 支持在 pom.xml 文件中配置多個鏡像源(repositories),也可以在 Maven 的全局配置文件 se…

ArduPilot 教程(2):運行第一個 SITL 無人機仿真

目錄 1. MAVLink 通信協議 2. MAVProxy 地面控制站 3. 運行 SITL 無人機仿真 3.1. 使用 MAVProxy 控制無人機 3.2. 使用 SITL 地圖界面控制無人機 4. MAVProxy 常用命令 5. 其它地面控制站 5.1. QGroundControl 5.2. MissionPlanner 5.3. 不啟用 MAVProxy 6. 本講小…

開源AI大模型驅動下視頻媒介對圖文生態的重構與S2B2C商業場景創新——基于AI智能名片與商城小程序源碼的實踐分析

摘要:數字媒介演進的進程中,視頻對圖片及文字的媒介侵蝕效應正呈現加速態勢,尤其在Z世代及新網民群體中,視頻已成為其觸網的首要信息載體。本文基于媒介技術迭代與商業場景融合的雙重視角,探究開源AI大模型如何通過智能…

Kafka線上集群部署方案:從環境選型到資源規劃思考

在分布式消息系統的落地應用中,Kafka集群的線上部署方案直接關系到業務系統的穩定性與性能表現。不同于測試環境的簡易搭建,生產級集群需要從操作系統適配、存儲介質選型、容量規劃到網絡資源調度等多維度進行系統性設計。本文將從工程實踐角度&#xff…

算法第40天|買賣股票的最佳時機 1 2 3

121. 買賣股票的最佳時機 題目 思路與解法 記錄每一天買或不買時的價值 class Solution { public:int maxProfit(vector<int>& prices) {// dp數組含義&#xff1a;// dp[i][0]:第i天&#xff0c;持有股票時的最大價值&#xff0c;dp[i][1]:第i天&#xff0c;不持…

【趙渝強老師】使用select...into outfile語句備份MySQL

MySQL可以使用select…into outfile語句將表的內容導出為一個文本文件。其基本的語法格式如下&#xff1a; select [列名] from 表名 [WHERE 語句] into outfile 目標文件 [其他選項];該語句分為兩個部分。前半部分是一個普通的select語句&#xff0c;通過這個select語句來查詢…

PHY XGE 自協商AN數據交互過程

在裸機環境下&#xff0c;兩個 **支持 10GBASE-T** 的 PHY 芯片通過 Clause 73 協議完成自協商&#xff08;Auto-Negotiation&#xff0c;AN&#xff09;&#xff0c;它們在 **無操作系統控制** 的條件下&#xff0c;完成以下 **完整的點對點數據交互流程**&#xff1a; --- ##…

【算法 day09】LeetCode 232.用棧實現隊列 | 225. 用隊列實現棧 | 20. 有效的括號 |1047. 刪除字符串中的所有相鄰重復項

232.用棧實現隊列 題目鏈接 | 文檔講解 |視頻講解 : 鏈接 1.思路&#xff1a; 使用2個棧去實現隊列 先將元素放入棧1中&#xff0c;然后在將棧1中的元素出棧到棧2中&#xff0c;棧2的元素出棧順序就和隊列的出隊一樣 2.代碼&#xff1a; class MyQueue {Stack<Integer…

大模型項目實戰:業務場景和解決方案

你的這張圖已經涵蓋了很多主流的大模型實戰項目&#xff0c;非常全面&#xff01;下面我會補充更多市面上常見的AI大模型實戰項目&#xff0c;并且簡要說明每個項目的核心內容、實現思路和主流技術棧&#xff0c;方便你參考和擴展。 1. 智能問答/知識庫系統 核心內容&#xff…

vscode + Jlink 一鍵調試stm32 單片機程序(windows系統版)

vscode Jlink 一鍵調試stm32 單片機程序 安裝交叉編譯工具鏈安裝 x-pack 構建工具安裝 JLink 工具gnu-debuger 插件編譯一鍵啟動調試 安裝交叉編譯工具鏈 stm32采用 交叉編譯工具鏈 arm-none-eabi-xxx, 下載之后解壓&#xff0c;壓縮包內部結構如下圖&#xff1a; 目錄下的bi…

Linux線程概念和控制

Linux線程概念 Linux中線程如何理解 線程<執行流<進程 Linux中的線程模擬進程實現&#xff08;線程就是輕量級進程&#xff09; 與獨立的進程相比&#xff0c;線程創建和銷毀的開銷較小&#xff0c;因為它們共享相同的內存空間和資源。 線程是進程內的執行分支&…

服務器出現問題,連接服務器出現3680 并刪除數據庫出現1192,請查看詳細問題(運維)

mysql連接服務器時&#xff0c;出現這個問題&#xff1a;3680 - Failed to create schema directory xxxx (errno: 28 - No space left on device) 第一步&#xff1a;診斷問題類型 檢查磁盤空間 運行以下命令&#xff1a; bash df -h # 查看磁盤使用情況 如果輸出中 Use% 接…

uniapp:微信小程序膠囊「復制鏈接」灰色處理

在原生開發的小程序中默認是支持復制的 &#x1f424; 但是在 uniapp 開發的小程序中無法復制&#xff08;體驗版與開發版都可以進行復制&#xff0c;但發布后不可&#xff09; 解決方法&#xff1a; methods: {onShareAppMessage: function() {// return custom share data …

差分數組c++

溫度波動記錄 每天記錄溫度&#xff0c;支持區間溫度調整和單日查詢 輸入&#xff1a; 第一行&#xff1a;一個整數n表示有n個溫度 第二行&#xff1a;n個數表示具體溫度 第三行&#xff1a;三個整數&#xff1a;S&#xff0c;e&#xff0c;c&#xff0c;表示從…

Vue.js 列表過濾實現詳解(watch和computed實現)

Vue.js 列表過濾實現詳解 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"widthd…

性能測試-jmeter實戰4

課程&#xff1a;B站大學 記錄軟件測試-性能測試學習歷程、掌握前端性能測試、后端性能測試、服務端性能測試的你才是一個專業的軟件測試工程師 性能測試-jmeter實戰4 jmeter環境搭建1. 安裝Java環境&#xff08;必需&#xff09; JMeter環境搭建完整指南1. 安裝Java&#xff0…

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

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

anchor 智能合約 IDL 調用

簡介&#xff1a;通過 IDL 生成代碼 調用 anchor 智能合約。 全網首發 使用 anchor 可以快速開發 solana 上面的智能合約 &#xff0c; 在本案例中我們 先使用 anchor 創建一個只能合約&#xff08; 多個函數方法&#xff09;。 部署到 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 第一步&#xff1a;按ctrl shift p, 搜索“Preferences: Open User Settings (JSON)” 并回車&#xff0c;打開 settings.json 文件 。然后添加或修改以下內容&#xff1a; "java.home": &qu…