一、效能測試的意義
現狀:網際網路行業發展快,使用者量大大增加;業務和系統架構越來越複雜,資料越來越多,使用者不僅僅滿足於功能的實現,在某些場景下,更在意系統效能。
二、什麼是效能測試
百科解釋:
效能測試是通過自動化的測試工具模擬多種正常、峰值以及異常負載條件來對系統的各項效能指標進行測試。負載測試和壓力測試都屬於效能測試,兩者可以結合進行。通過負載測試,確定在各種工作負載下系統的效能,目標是測試當負載逐漸增加時,系統各項效能指標的變化情況。壓力測試是通過確定乙個系統的瓶頸或者不能接受的效能點,來獲得系統能提供的最大服務級別的測試。
通過一定的手段,在多併發情況下,獲取被測系統的各項效能指標,驗證被測系統在高併發下的處理能力、響應能力,穩定性等,能否滿足預期。定位效能瓶頸,排查效能隱患,保障系統的質量,提公升使用者體驗。
三、什麼樣的系統需要做效能測試
◼ 使用者量大,pv比較高的系統
◼ 系統核心模組/介面
◼ 業務邏輯/演算法比較複雜
◼ **/活動推廣計畫
四、效能測試發生的場景
◼ 新系統,新專案(舊)
◼ 線上效能問題驗證和調優
◼ 新技術選型
◼ 效能容量評估和規劃
◼ 日常系統效能回歸
五、效能測試指標
1、tps
事務:在效能測試領域裡,衡量乙個系統效能的好壞,主要看的是單位時間內,系統可以處理多少業務量。
各個系統的業務各不相同,為了方便衡量業務的效能,需要在測試指令碼中新增一對標籤,測試工具統計單位時間內,標籤的業務量,就可以統計出真實的業務量。
指令碼中的標籤,就叫做事務。事務是使用者定義的,想測試什麼業務的效能,就把該業務加到事務中。
(測試「下單」 業務,將下單放到事務標籤裡,測試「新增購物車-下單」 整體業務將兩個介面加在乙個事務標籤裡)
tps/qps
transaction per second 每秒處理的事務數
request per second 每秒處理的請求數
2、平均響應時間
響應時間=網路傳輸的總時間+各元件業務處理時間=rt(response time)
3、top響應時間
將所有請求的響應時間先從大到小進行排序,計算指定比例的請求都是小於某個時間。
該指標統計的是大多數請求的耗時。
tp90(90%響應時間):90%的請求耗時都低於某個響應時間
tp95(95%響應時間):95%的請求耗時都低於某個響應時間
tp99(99%響應時間):99%的請求耗時都低於某個響應時間
4、其他效能測試指標
併發數/虛擬使用者(vuser):壓測工具中設定的併發執行緒/程序數量
成功率:請求的成功率
pv(page view):頁面/介面的訪問量
uv(unique visitor):頁面/介面的每日唯一訪客
吞吐量:網路中上行和下行的流量總和,吞吐量代表網路的流量,tps越高,吞吐量越大
tps、響應時間和併發數的關係
在系統達到效能瓶頸之前,tps 和 併發數 成正比關係
響應時間單位為秒的情況下
tps = 1 / 響應時間 * 併發數
tps = 併發數 / 響應時間
集合點集合點是為了增加瞬間併發壓力的一種機制,在指令碼中增加乙個標記,所有虛擬使用者執行到標記處會進行等待,等所有使用者都到達後,再同時繼續執行下一步操作。
優點:對伺服器來說,會產生一種瞬間高併發
缺點:對伺服器來說,平均壓力會降低
什麼時候需要加集合點?
根據業務來選擇,如果業務場景是瞬間高併發型別的,如搶購、秒殺等,需要加集合點;其他的場景都不需要加,一般加了集合點後,就不使用tps來衡量系統效能
集合點功能要慎重選擇,因為加了集合點後,系統的平均壓力會降低
六、效能監控指標
作業系統級別監控:
cpu使用率、記憶體使用率、網路io(input/output)、磁碟(read/write/util)
中介軟體監控:
連線數、長短連線、使用記憶體
應用層監控:
執行緒狀態、jvm引數、gc頻率、鎖
資料庫監控:
連線數、鎖、快取、記憶體、sql效率
效能測試基礎理論
一 什麼是軟體效能 定義 軟體的效能是軟體的一種非功能特性,它關注的不是軟體是否能夠完成特定的功能,而是在完成該功能時展示出來的及時性。由定義可知效能關注的是軟體的非功能特性,所以一般來說效能測試介入的時機是在功能測試完成之後。另外,由定義中的及時性可知效能也是一種指標,可以用時間或其它指標來衡量,...
演算法的效能度量基礎理論
文章目錄 時間複雜度 o表示法 代價分攤 參考資料 演算法的空間複雜度是對執行過程中所需要的最大儲存資源的開銷的一種度量 空間複雜度包括兩個部分 時間複雜度是對演算法開始到結束所需要的執行時間的一種度量 因為演算法執行的時間和硬體效能相關,為了避免這種硬體帶來的影響,時間複雜度的衡量單位需要遮蔽硬體...
基礎理論(四)
1.簡述python中物件的記憶體是如何管理的 2.簡述類和物件的概念及類繼承的特點 3.簡述python如何操作 mysql,用到什麼包 寫出具體的增刪改查語句 4.簡述scrapy爬蟲的資料流向過程 5.網路七層協議都是哪七層?6.scrapy中如何設定隨機請求頭 隨機 寫出具體步驟 需要什麼配...