說明:該篇博客是博主一字一碼編寫的,實屬不易,請尊重原創,謝謝大家!
舉例:QQ聊天
用戶
√ 用戶體會到的性能是軟件對用戶操作的響應時間,是用戶從提交或輸入一個 url 地址到系統將全部數據呈現出來的時間。
系統管理員和性能測試工程師
√ 除與用戶的視角一樣外,還關注與系統狀態相關的信息,如系統資源的使用情況,包括 CPU 的使用、內存的使用情況、磁盤 I/O、數據交互等。
√ 還關注硬件資源的可擴展性即規劃性能部分,如系統支持 100 個用戶併發沒問題,支持 200 個呢?
軟件開發工程師
√ 關注以上所有問題,還關注內存泄露、數據庫是否死鎖、中間件以及和應用程序服務器等問題。
客戶端向服務器發出的請求獲得數據或文件、圖片等資源。
服務器向客戶端發送數據或文件、圖片等資源。
傳輸層協議
√ tcp、udp
應用層協議
√ ftp、http、dns、dhcp、smtp、pop
正在使用軟件的用戶。
性能測試工具使用虛擬用戶模擬真實用戶的行爲。
吞吐量
√ 指一段時間內服務器處理的字節數,直接體現服務器的承載能力。
√ 從吞吐量和 VU 關聯圖可看出,吞吐量在 VU 增長到一定數量時,軟件系統出現性能瓶頸,此時吞吐量不再隨 VU 增多而增大,而是趨於平衡。
√ 實際測試時,吞吐量在測試前是不知道的,必須通過不斷添加虛擬用戶來測試,以找到吞吐量的拐點,即吞吐量的最大值。
吞吐率(Throughout)
√ 指單位時間內從服務器返回的字節數,即吞吐量/測試時間,也可以是單位時間內處理的客戶請求數。
√ 它是衡量網絡性能一個重要指標。通常情況下吞吐量越大,吞吐率的值也越大,吞吐率越大表示系統的負載能力越強。
資源利用率
√ 指服務器系統中不同硬件資源被佔用的程度,主要包括 CPU 利用率、內存利用率、磁盤利用率、網絡等。
√ 性能測試中常用資源利用率進行橫向對比,如 CPU 使用率很高,而其他資源較低,可知 CPU 是系統瓶頸。
√ 配置調優測試中,通過比較配置調優前後的系統資源利用率來判斷調優效果。
性能計數器(Counter)
√ 是描述服務器或操作系統性能的一些數據指標。主要是通過添加計數器來觀察系統資源的使用情況。
√ 計數器在性能測試中發揮着「監控和分析」的關鍵作用,尤其是分析系統可擴展性和定位性能瓶頸時。
√ 性能測試中分析測試結果時,必須基於多個不同的計數器進行分析。
當系統已經達到一定的飽和程度(如 CPU、磁盤等已經處於一種飽和狀態)時,測試系統處理業務的能力,測試系統是否會出現崩潰等。
一般通過模擬負載等方法,使系統資源達到一個較高水平。
此方法一般用於系統穩定性測試。
配置測試
√ 通過調整系統軟/硬件環境,瞭解不同環境對系統性能的影響,從而找到系統的最優配置。
√ 此方法一般用於系統調優和規劃。
基準測試
√ 在一定的軟硬件及網絡環境下,模擬一定數量的虛擬用戶運行一種或多種業務,將測試結果作爲基線數據,在系統調優或系統評測過程中,通過運行相同的業務場景來比較測試結果確定調優是否達到效果或爲系統的選擇提供決策依據。
性能測試過程分爲四個階段:測試設計、構建、執行、分析。
定義待測試的業務流程、業務的平均處理量、業務處理量的最高峯值、組合業務流程、系統的整體用戶和響應時間目標。
設計設置和配置測試系統及基礎設施、使用自動化性能測試解決方案構建測試腳本和負載方案。
具體包括:編寫腳本、增強腳本、設計場景。
包括運行負載方案和測量系統性能,對系統資源進行監控。
主要測量系統性能並使負載測試進入下一級別,重點查找問題原因以幫助開發工程師迅速解決問題,並實時調節系統參數以提高性能。