首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

JMeter 壓測 Java Web 應用實戰:從腳本錄製到結果分析

     編輯:Java 相關知識

JMeter 核心特性

  • 100% 純 Java,跨平台桌面應用
  • 支持 HTTP/HTTPS、FTP、JDBC、JMS、LDAP、SOAP/REST 等協議
  • 多線程並發框架,支持線程組獨立配置
  • 豐富監聽器:聚合報告、圖形結果、查看結果樹、摘要報告等
  • 可擴展:BeanShell/JSR223 腳本、自定義取樣器、插件生態
  • 支持分佈式壓測(Master-Slave 模式)

測試場景:客戶信息查詢頁面

  • 目標頁面:khxx_xg.jsp(接收參數 → 調用 JavaBean → 輸出信息)
  • 服務端:P4 / 512MB / Oracle 10g + Tomcat 5.5
  • 壓測端:P4 / 512MB / JMeter
  • 測試參數:in_id=dsgds

JMeter 測試計劃構建步驟

1. 線程組 —— 定義負載模型

  • 線程數:10(模擬 10 個並發用戶)
  • Ramp-Up Period:0 秒(立即並發啟動所有線程)
  • 循環次數:10(每線程執行 10 次請求,總計 100 次)

說明:Ramp-Up > 0 時,線程按間隔啟動;勾選 Forever 則無限循環直到手動停止。

2. HTTP 默認請求 —— 統一基礎配置

  • 服務器:localhost
  • 端口:8080
  • 協議:http
  • 路徑:/hrbin/hg_admin/khxx_xg.jsp

3. HTTP 請求取樣器 —— 具體業務請求

  • 方法:GET/POST 根據業務選擇
  • 參數:添加 in_id = dsgds

4. 監聽器 —— 結果收集與展示

  • 聚合報告:核心指標匯總(吞吐量、響應時間分位、錯誤率)
  • 可補充:查看結果樹(調試)、圖形結果(趨勢)、摘要報告(導出)

壓測結果數據與分析

並發用戶總樣本平均響應(ms)中位數(ms)90%行(ms)最小(ms)最大(ms)錯誤率吞吐量(req/s)KB/sec
106426726881251257190.0%14.8221.15
2525016201687175025017810.0%14.5217.14
5050033193438357828136570.0%14.2212.02
7575048875109558432870940.0%14.5216.67
100100062446485667225068440.0%15.1225.43

關鍵指標解讀

  • Average:單次請求平均響應時間
  • Median (50%):一半用戶的響應時間
  • 90% Line:90% 用戶的響應時間,關鍵 SLA 指標
  • Throughput:每秒完成請求數,系統處理能力直觀體現
  • Error%:錯誤請求佔比,>0% 即需排查

性能基線判讀(經驗值)

響應時間用戶感知業務建議
< 2 秒非常快優秀,無需優化
2-5 秒可接受可優化,非緊急
5-10 秒較慢需優化,影響體驗
> 10 秒極差/超時嚴重缺陷,必須修復

本案例結論

  • 10-25 並發:響應 < 2s,**性能優秀**
  • 25-50 並發:響應 2-5s,**可接受,建議優化數據庫/連接池**
  • 50-100 並發:響應 > 5s,**性能不足,需架構優化(緩存、異步、集群)**

進階實踐建議

  1. 參數化:使用 CSV Data Set Config 讀取真實業務參數
  2. 邏輯控制器:Loop/If/While/Random Controller 構建真實業務流
  3. 定時器:Gaussian/Uniform/Constant Throughput Timer 模擬思考時間
  4. 斷言:Response Assertion 驗證業務正確性,而非僅看 HTTP 200
  5. 分佈式壓測:單機瓶頸時部署多台 Slave,Master 統一協調
  6. 監控聯動:結合 JVisualVM、Prometheus+Grafana 觀測服務端資源
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved