性能測驗思想講解
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,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/244156.html
標籤:其他
上一篇:介面檔案規范
