4-8(九)Jmeter性能測試之階梯式場景(負載測試)、波浪式場景(壓力測試)


一、階梯式場景(負載測試)

  該場景主要應用在負載測試里面,通過設定一定的並發線程數,給定加壓規則,遵循“緩起步,快結束”的原則,不斷地增加並發用戶來找到系統的性能瓶頸,進而有針對性的進行各方面的系統優化。

  使用到的線程為:jp@gc - Stepping Thread Group (deprecated)

  在測試計划上:右鍵—>添加—>線程(用戶)—>jp@gc - Stepping Thread Group (deprecated)

   同時添加以下監視器:

  • TPS:jp@gc - Transactions per Second
  • 響應時間:jp@gc - Response Times Over Time
  • 活躍線程數:jp@gc - Active Threads Over Time

針對階梯式場景的參數配置,說明如下:

  • This group will start:給定的當前負載的並發用戶數
  • First, wait for:等待XX秒后開始啟動
  • Then start:0秒(初始化)啟動XX並發用戶數 — 在第幾個虛擬用戶啟動
  • Next, add:每using ramp-up時間內啟動XX的用戶數
  • threads every:每次加壓階梯下用戶完成啟動后保持運行XX秒
  • using ramp-up:XX秒內完成Next, add的用戶數的啟動

    

      注:五秒鍾啟動十個線程,這十個線程持續運行30秒,再用五秒鍾啟動十個線程,這20個線程持續運行30秒

  • Then hold load for:This group will start並發用戶數全部啟動完成后保持運行XX秒 == 所有線程運行完成后再執行XX秒
  • Finally, stop:每隔threads every的時間減少XX用戶數
  • threads every:每隔XX秒減少Finally, stop的用戶數

  

 

       注:每隔1秒減少5個並發用戶數直到並發用戶數減少為0

我們以注冊接口為例,配置如下參數:

  配置參數的完整描述為:給定負載並發用戶數為25,從0秒開始,每3秒內增加5個並發用戶數,3秒時刻完成5個並發用戶數的啟動后開始平穩運行10秒鍾,依次下去,直到25個並發用戶數全部都啟動完成后,平穩運行30秒,然后每隔1秒減少5個並發用戶數直到並發用戶數減少為0時,負載測試結束。

開始進行負載測試,等待測試完成后,可以通過添加的jpgc監視器圖表查看性能測試報告結果

 

 

二、波浪式場景(壓力測試)

  該場景主要用在分段時間壓測和壓力測試里面,分段時間壓測比如點餐系統,一天會出現用餐高峰期、平穩期和閑時區,針對該場景我們就要設計成不同時間段的壓力值不同,加壓方式不同等等,壓力測試我們只需要使用一個場景,並將壓測時間設置長即可,同樣的測試報告也用jpgc的監視器獲得

  使用到的線程為:jp@gc - UItimate Thread Group

  在測試計划上:右鍵—>添加—>線程(用戶)—>jp@gc - UItimate Thread Group

針對波浪式場景的參數配置,說明如下:

  • Start Threads Count:給定當前時間段的並發用戶數
  • Initial Delay, sec:初始化時間,單位:秒(s)
  • Startup Time, sec:啟動時間,單位:秒(s)
  • Hold Load For, sec:所有並發用戶數啟動完成后保持運行的時長,單位:秒(s)
  • Shutdown Time:結束時間,單位:秒(s)

分段時間壓測(示例):

  理解:從 0秒 開始,30秒 啟動 50個 虛擬用戶,運行 60秒 后,10秒 停止50個虛擬用戶  == 第一階段耗時100秒

     從100秒 開始,15秒 啟動 200個 虛擬用戶,運行 120秒 后,10秒 停止 200個 虛擬用戶 == 前兩個階段總耗時 245 秒

     從 245秒 開始,30秒 啟動 50個 虛擬用戶,運行 60秒 后,20秒 停止 100個 虛擬用戶  == 前三個階段總耗時 385秒

    。。。。。。

 

壓力測試(示例):

  理解:從 0秒 開始,60秒 啟動 300個 虛擬用戶,運行 500秒 后,10秒 停止300個虛擬用戶  == 段耗時 570秒

 

三、服務器監控

  服務器監控插件:jp@gc - PerfMon Metrics Collector,需要在服務器安裝:ServerAgent

    • 服務器資源監控線形圖
    • 用於監控機器的CPU、Memory、swap、Disks I/O、Networks I/O。CPU:cpu占用量百分比;
    • 服務器性能監測控件,包括CPU,Memory,Network,I/O等等(此功能用到在需監聽的服務器上啟動startAgent)
    • 根據需要選擇CPU,Memory,Network I/O等

1、下載並安裝ServerAgent

百度網盤鏈接安裝包:

2、通過ftp/sftp方式把包上傳到服務器上,解壓

  1. 上傳 壓縮包到服務器 建議公司環境安裝目錄下或opt目錄下
  2. 解壓命令:unzpi ServerAgent-2.2.3.zip
  3. 進入解壓后的文件:cd ServerAgent-2.2.3/
  4. 查看所有文件:ll
    • starAgent.sh 是啟動文件

3、更改端口並啟動服務:

Linux 下啟動:.startAgent.sh  回車就可以啟動,默認的端口是4444

在阿里雲的服務器上面4444端口可能沖突后會被禁用,防止禁用后會出現各種問題

 

更改並啟動服務執行: sh startagent.sh --udp-port 0 - -tcp-port 3231

(建議使用該方式,去掉udp、tcp改變端口, 默認4444,可能沖突或禁用)

  • udp和tcp都是http協議中使用的數據傳輸協議 其中 udp 的意思是傳輸的速度越快越好,不保證數據的准確定
  • tcp 需要先建立雙方的鏈接,數據穩定不會出錯,傳輸的速度沒有udp快

加上&后台運行:sh startagent.sh --udp-port 0 -tcp-port 3231&

停止服務:Ctrl + C

4、啟動服務后去檢查防火牆是否關閉

1、服務器\防火牆是關閉狀態那就沒有問題

  • 1、啟動防火牆:systemctl start firewalld
  • 2、關閉防火牆:systemctl stop firewalld
  • 3、檢查防火牆狀態:systemctl status firewalld 

  

 

 

2、如果沒有關閉防火牆,那么就需要關閉或執行下面的命令把端口添加到防火牆內

  • 防火牆添加開放端口:
  • 命令:firewall-cmd --permanent -add-port=3123/tcp
    • 不用在意此條內容:再firewall-cmd --reload  (刪除firewall-cmd-permanent --remove-port=3243/tep)  

安裝完畢

 

5、運行腳本:

 啟動后會出現如下圖:服務器資源監控的圖表

 

可能出現的問題:

1.啟動文件,並指定端口號(隨意):

  • ./ startAgent.sh --udp-port 0 --tcp-port 3128
  • 意思是:不啟用 udp 服務,只啟動 tcp 服務

2.可能出現網絡不通

檢測到服務器 端口網絡不通

telnet 服務器地址.3129

 

1、網絡不通第一種解決辦法

先停止服務:Ctrl + C

檢查3128端口:lsof -1:3128

輸入命令回車后什么都沒有提示

需要查看防火牆:systemctl status fi rewalld

 

2、網絡不通第二種方法

  • 關閉防火牆,重新指定端口
    • systemctl stop firewalld
    • systemctl status firewalld
    • ./ startAgent.sh - -udp-port 0 --tcp-port 3129

檢測端口網絡是否通暢

telnet 148. 70. 249.98 3129

 

 

*******請大家尊重原創,如要轉載,請注明出處:轉載自: https://www.cnblogs.com/shouhu/,謝謝!!******* 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM