效能測試理論知識
效能測試思想講解
1.什麼是效能測試
什麼是
軟體效能
?
定義:軟體的效能是軟體的一種非功能特性
,它關注的不是軟體是否能夠完成特定的功能,而是在完成該功能是展示出來的及時性
。
比如:一個登入功能他能實現登入操作,但是登入過程需要10s才能進入主頁面,這就說明軟體的效能不好。
什麼是
效能測試
?
定義:指通過自動化的測試工具模擬多種正常、峰值以及異常負載條件
來對系統的各項效能指標進行測試。
功能測試的時候關注的是1個人的操作,效能測試關注的是多個人。
效能測試
什麼時候做
?
介面測試是最先做,效能測試是最後
做。
效能測試是基於所有功能都測試完畢並且修復完成,基本不改變,正常測試流程已經全部走完,在上線前的兩三天做效能測試,效能測試通過則可以上線。
2.不同群體眼中的效能
使用者的視角:
- 響應時間(還要讓我等多久?需要載入老半天才出現頁面?)
- 確定性(為什麼總是失敗?閃退?無響應?)
開發視角:
- 架構設計是否合理?——架構設計
- 資料庫設計是否合理?——資料庫設計
- 程式碼是否存在效能問題?——程式碼
- 是否有不合理的記憶體使用?——程式碼
- 是否有不合理的執行緒同步操作?——程式碼
- 是否有不合理的資源競爭?——程式碼
- 程式碼演算法是否還能進一步提升?——程式碼
系統管理員(運維)視角:
- 伺服器資源使用合理嗎?——資源利用率
- 資料庫使用合理嗎?——資源利用率
- 系統是否實現擴充套件?——可擴充套件性(比如:伺服器動態擴充套件)
- 最多支撐多少使用者訪問?——系統容量
- 最大業務處理量?——系統容量
- 系統有哪些潛在的瓶頸?——可擴充套件性
- 更換哪些裝置,新增哪些機器可以提高系統性能?——可擴充套件性
- 7×24小時連續不間斷業務訪問?——穩定性
測試眼中的效能:
官方回答:
- 測試人員通常是作為軟體質量控制的一個角色,不僅僅是找BUG,更需要對整個軟體的質量負責,效能也屬於質量的一部分,因此測試人員眼中的效能應該是全面的,考慮的東西也需要全面。
- 測試人員需要考慮全面的效能,包括使用者、開發、運維等各個視角的效能。
- 測試人員在做效能測試時除開要關注表面的現象,比如:響應時間,也需要關注本質,比如:使用者看不到的伺服器資源利用率,架構設計是否合理,程式碼是否合理等方面。
實際測試:
- 將開發視角看成一塊,運維視角也看成一塊,站在使用者的角度,模擬使用者操作。
- 如果達標就通過,上線。
- 如果不達標,就要判斷是開發的問題還是運維的問題。
- 監控系統的物理資源,比如:CPU佔用100%(一般是85%以內,70%、60%、50%都ok),就是運維問題,或者是記憶體佔滿,頻寬打滿。
- 運維已經調過物理資源,CPU、記憶體、頻寬等也都達標,測試發現還有效能問題,那就是開發問題。就要指派給開發去處理。
❓效能測試的指標?是誰定的?(面試題)
產品經理和專案經理制定。
3.效能測試的場景維度和型別
基準測試:
在給系統施加較低壓力時,檢視系統的執行狀況並記錄相關資料作為基礎參考。
比如:一個系統的效能要求是滿足100個人使用,我們就會取10-20個人去做測試就會得到一組資料,這個數就作為基準測試的基礎參考值
負載測試:
是指對系統不斷地增加壓力或增加一定壓力下的持續時間,直到系統的某項或多項效能指標達到安全臨界值,例如:某種資源已經達到飽和狀態。
正常是由小往大增加,需要注意的點是需要往安全的臨界值去加,而不是往超負荷的去加,也就是說效能是走上坡路的,尋找最佳效能的那個點。如果加到發現效能下降,就需要往回退,取更小的差值,比如60直接加到70的時候出現效能指標下降,就需要取65、66、67等慢慢嘗試,找到系統最優點。
壓力測試:
壓力測試是評估系統處於或超過預期負載時系統的執行情況,關注點在於系統在峰值負載或超出最大載荷情況下的處理能力。
70往上加,觀察軟體是如何處理這種情況:
①系統崩潰
②所有人都無法訪問
③一部分人可以訪問,一部分人無法訪問,需要錯峰訪問(比如:考試系統查分)
穩定性測試:
在給系統載入一定業務壓力(40%-60%)的情況下,使系統執行一段時間,一次檢測系統是否穩定。
併發測試:
測試多個使用者同時訪問同一個應用、同一個模組或者資料記錄時是否存在死鎖或者其他效能問題。
4.效能測試基本概念
-
響應時間
(RT——Response-time)-
定義:從
使用者傳送一個請求
到使用者接受到伺服器返回的響應資料
的這段時間就是響應時間。 -
關鍵路徑:http請求經過網路傳送到web伺服器進行處理,如果需要操作DB,再由網路轉發到資料庫進行處理,然後返回值給web伺服器,web伺服器最終把結果資料通過網路返回給客戶端。
-
響應時間計算方法:
響應時間=呈現時間+網路傳輸時間+伺服器端響應時間+應用延時時間
-
響應時間和負載對應關係:
理髮店模型:10個理髮師,理1個客戶需要1分鐘,當同時來的客戶數量小於等於10個,總時間只需1分鐘,當同時來11個客戶,總時間就需要2分鐘,以此類推21個客戶就需要3分鐘......
拐點:
- 響應時間突然增加。
- 意味系統的一種或多種資源利用達到極限。
- 通常可以利用拐點來進行效能測試分析與定位。
-
-
吞吐量
-
定義:單位時間內系統處理的客戶端請求的數量。(判斷系統處理能力的一個指標)
-
計算單位:一般使用
請求數/秒
作為吞吐量的單位,可以使用頁面數/秒
表示。另外,從業務角度來說也可以使用訪問人數/天
或頁面訪問量/天
作為單位。 -
計算方法:throughput = (number of requests)/(total time)
-
吞吐量和負載對應關係:
拐點:
- 吞吐量逐漸達到飽和。
- 意味著系統一種或多種資源利用達到了極限。
- 通常可以利用拐點來進行效能測試分析與定位。
-
-
併發數
- 併發使用者數:某一物理時刻同時向系統提交請求的使用者數,提交的請求可能是同一個場景或功能,也可以是不同場景或功能。
- 線上使用者數:某段時間內訪問系統的使用者數,這些使用者並不一定同時向系統提交請求。(日活——每日活躍使用者數)
- 系統使用者數:系統註冊的總使用者資料。
- 三者之間的關係:系統使用者數 >= 線上使用者數 >= 併發使用者數
-
資源利用率
-
定義:指的是對不同系統資源的使用程度,通常以佔用最大值的百分比來衡量(CPU、記憶體)。
-
通常需要關注的伺服器資源如下:
- CPU:就像人的大腦,主要負責相關事物的判斷以及實際處理的機制。(一般不超過80%-90%)
- 記憶體:大腦中的記憶塊區,將眼睛、面板等收集到的資訊記錄起來的地方,以供CPU進行判斷,但是是臨時的,訪問速度快,如果關機或斷電,記憶體中的資料就會消失。
- 磁碟IO:大腦中的記憶區塊,將重要的資料儲存起來,永久儲存,關機或斷電也不會丟失,速度慢,以便將來再次使用這些資料。(通過檢視讀寫)
- 網路:頻寬。(傳送/接收的速率)
-
資源利用率和負載對應關係:
拐點:
- 伺服器某資源使用逐漸達到飽和。
- 通常可以利用拐點來進行效能測試分析與定位。
-
windows的資源監視器:
工作管理員 --> 效能 --> 資源監視器
-
-
其他常用概念
PV
(Page View,頁面訪問量):訪問一個URL,產生一個PV,每日每個網站的總PV量是形容一個網站規模的重要指標。UV
(Unique Visitor,使用者訪問):作為獨立的使用者,訪問站點的所有頁面均算一個UV。