一、性能測試概念
- 性能:事務、物品的某些特性的評價值
- 性能測試:通過測試工具模擬多種正常、峰值及異常負載條件來對系統的各項性能指標進行測試
二、性能測試指標
性能指標分為兩個方面:
- 系統指標(與用戶場景和需求相關指標)
- 資源指標(與硬件資源消耗相關指標)
1.響應時間
從發起請求到收到請求響應的時間
響應時間=網絡響應時間+應用程序響應時間=(N1+N2+N3+N4)+(A1+A2+A3)
2.並發數
單位時間內發起請求的用戶數
並發用戶數C,計算公式C=nL/T
n:每天訪問系統的用戶數
L:在線用戶從登陸到退出的時間
T:用戶每天使用系統大概多長時間
峰值C1,即最大並發數,計算公式C1=C+³√C
最佳並發用戶數:當系統的負載等於最佳並發用戶數時,系統的整體效率最高,沒有資源被浪費,用戶也不需要等待
最大並發用戶數:系統的負載一直持續,有些用戶在處理而有的用戶在自己最大的等待時間內等待的時候
3.吞吐量、吞吐率
衡量網絡性能的重要指標
吞吐量:網絡傳輸的數據量(處理客戶的請求數)
吞吐率:單位時間(可以是秒/分/時/天)內網絡成功傳輸的數據量,如請求數/秒、頁面數/秒
4.事務、TPS
事務:一個動作或是一系列動作的集合,比如用戶從登錄到退出的一個場景就為一個事務
TPS:Transaction per second——最主要的性能指標,衡量服務器處理事務數的能力,每秒通過的事務數
5.點擊量、點擊率
點擊量:指Web Server收到的HTTP請求數
點擊率:Hits Per Second,單位時間每秒用戶向Web Server提交的HTTP請求數
區分鼠標點擊量:如請求一個網頁,網頁含有3張圖片,向Web Server請求的點擊數:1+3=4,而鼠標的一次點擊就可以訪問網頁,點擊數只有1次
6.資源利用率
CPU:主要解釋計算機指令以及處理計算機軟件中的數據
內存:與cpu溝通的橋梁,計算機中所有程序的運行都在內存中進行,內存分為物理內存、頁面交換(Paging),SWAP內存(虛擬內存)
- 頁面交換:當物理內存即實際的內存滿了的時候,將物理內存中不常用的進程調出存儲到虛擬內存中,以緩解物理內存空間的壓力,所以當物理內存與虛擬內存的數據交換頻繁的時候,這時候就要關注下內存的性能情況
- SWAP內存:為進程分配虛擬的內存空間,即調用硬盤的空間作為內存使用
磁盤I/O:指單位時間內通過磁盤的數據量。主要關注磁盤的繁忙率,如果高於70%,則磁盤瓶頸
網絡I/O:指單位時間內通過網絡的數據量。當吞吐量大於網路設備或鏈路最大傳輸能力,即帶寬時,則應該考慮升級網絡設備或者增加帶寬,Linux命令netstate
三、性能測試方法
負載測試、壓力測試和性能測試,從測試的方法與工具來說,三者都是一樣的,但是,壓力測試跟負載測試都是屬於性能測試的子集
1.負載測試
在一定的軟硬件環境下,通過不斷的加大負載來確定在滿足性能指標情況下所能夠承受的最大用戶數。所以它的目的是為了獲取最大用戶數。一般不超過80%cpu(二八原則),正常情況工作下最大用戶數的數據
2.壓力測試
在一定的軟硬件環境下,通過高負載的手段來使服務器資源處於極限的狀態,測試該系統在極限狀態長時間運行是否穩定。包括系統指標,服務器性能指標
四、性能測試的前提
1.性能測試的必要性研究——關鍵項評估
- 主管部門、監管部門審查
- 涉及生命財產安全
- 大型新系統
- 核心系統
- 架構調整
- 業務劇增
- 重大缺陷修復
2.可測性
可量化為性能指標值
五、性能測試工具
- Jmeter
- LoadRunner
- locust
- 公司自研開發的工具