0. 性能測試學習--整體認識

壓力工具

壓測工具: jmeter,loadrunner fiddler
分析調優工具: visualvm, yourkit, jps, jstat

技能要求

制定測試計劃及其策略,
進行測試執行及其分析,
並能對系統性能瓶頸進行定位及其優化.

  1. 開發語言:java等
  2. 操作系統:centos等
  3. 數據庫:mysql,pg等
  4. 測試工具:jmeter等
  5. 網絡知識:知道網絡負荷,數據大小,能允許多少負荷
  6. 業務知識:脫離業務的技術就是扯淡

性能測試目的

發現性能瓶頸
測試範圍:

  1. 負載測試: 逐步加壓, 達到既定性能閾值.閾值的設定應該是小於等於某個值.舉例.cpu使用率小於80%, 內存使用率小於70%
  2. 壓力測試: 逐步加壓,使得系統的某些資源達到飽和,甚至不能使用. 簡單的說就是,把系統整崩潰.
  3. 併發測試: 同一時間,多個虛擬用戶同時訪問同一模塊,同一功能,通常測試方法是設置集合點.
  4. 容量測試: 通常數據庫層面, 獲取數據庫的最佳容量能量.
  5. 可靠性測試: 又稱爲穩定性或者疲勞測試, 高壓情況下,系統穩定運行時間,比如cpu使用率80%以上,7*24小時運行,是否穩定.
  6. 異常測試: 又稱爲失敗測試. 系統架構方面的測試. 宕機,掛機等情況 系統的反應.(容災能力)

工作流程

需求分析 → 性能指標指定 → 腳本開發 → 場景設置(模擬生產環境) → 監控部署(看得到) → 測試執行
→ 性能分析 → 性能調優 → 測試執行… → 測試報告

常見系統應用分層架構

顯示層(view): web Android ios h5

邏輯控制層(controller): API

數據存儲層(model): mysql, mongodb, redis …

可以知道需要監控: 數據庫 程序 服務器 頁面加載 圖片加載速度等等

性能測試指標定義

前提:事務的概念
從客戶端發起一個或者多個到客戶端接收到從服務器返回的響應.
舉例: 銀行轉賬.

TPS(Transaction Per Second)
每秒中系統能夠處理的事務數.
注意: 事務數不一定等於請求數,因爲一個事務可能不只一項請求.

響應時間
客戶端發起開始,到客戶端收到服務器返回的響應,整個過程消耗的時間.

事務響應時間
事務可能是一個或多個請求組成, 事務響應時間主要是針對用戶而言的,例如轉賬

併發
多用戶在系統進行統一操作, 例如秒殺
多用戶在系統上進行不同操作,例如針對不能商品秒殺,瀏覽不能商品

併發用戶數
同一單位時間內對系統發起請求的用戶數量. 例如,1秒最多訪問多少次

吞吐量
一次性能測試過程中網絡傳輸的數據量的綜合. 例如:最多同時下載多少圖片
這個和網絡帶寬,磁盤IO等有關係

吞吐率
單位時間內網絡上傳輸的數據量
吞吐率 = 吞吐量/傳輸時間
例如:十秒總共下載了500m圖片,那麼吞吐量就是50m/s

點擊率
每秒用戶像服務器提交的請求數量.
web應用中,每秒用戶在頁面進行了多少次點擊. 注意,每次點擊,可能發送了多次請求.比如:插入數據,寫log,更新之前的數據

資源使用率
系統資源使用情況,和硬件有關
cpu,內存, IO等

性能測試的需求分析

  • 明確測試指標
  • 明確測試場景

測試重點是在什麼場景,達到什麼要求就算過關.

新系統方法:

  • 同行比較
  • 業務預期

老系統:

  • 對此以往的用戶使用行爲以及用戶量

性能測試工具

人類最大的進步就是學會了製造使用工具
在這裏插入圖片描述
參考: https://www.zhihu.com/question/279196504

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章