注意:該文檔為word文檔,想要模板請回復關鍵字「測試性能指標」。
軟體性能指標整理(幫測試節省時間)
通過對軟體測試中性能測試的初步了解,總結軟體性能指標中的幾個術語:響應時間、並發用戶數,吞吐量,性能計數器,TPS,HPS。在使用性能測試工具進行測試時,還會接觸到「思考時間(Think Time)」的概念。供以後學習使用。
1、響應時間
根據個人理解,響應時間指的是「系統響應時間」,定義為應用系統從發出請求開始到客戶端接收到響應所消耗的時間。把它作為用戶視角的軟體性能的主要體現。它包括網絡上的傳輸時間,web伺服器上處理時間,APP伺服器上處理時間,DB伺服器上處理時間,但不包括瀏覽器上的內容顯示時間,即「呈現時間」,這是因為呈現時間在很大程度上取決於客戶端的表現,例如,一臺內存不足的客戶端機器在處理複雜頁面的時候,其呈現時間可能就很長,而這並不能說明整個系統的性能。
許多描述性能測試的書或者工具把「響應時間」定義為「應用系統從請求發出開始到客戶端接收到最後一個字節數據所消耗的時間」。造成這種差異的原因是,對用戶體驗來說,可以採用一些技巧在數據尚未完全接收完成時進行呈現來減少用戶感受到的響應時間。當然,針對Web 應用的測試(因為瀏覽器行為是既定的),我們仍然採用後一種定義方式來描述響應時間。
關於響應時間,要特別說明的一點是,對客戶來說,該值是否能夠被接受是帶有一定的用戶主觀色彩,也就是說,響應時間的「長」和「短」沒有絕對的區別。因此,在進行性能測試時,「合理的響應時間」取決於實際的用戶需求,而不能依據測試人員自己的設想來決定。
2、最大並發用戶數
有兩種理解方式,一種是從業務的角度來模擬真實的用戶訪問,體現的是業務並發用戶數,指在同一時間段內訪問系統的用戶數量。另一種是從伺服器端承受的壓力來考慮,這裡的「並發用戶數」指的是同時向伺服器端發出請求的客戶數,該概念一般結合併發測試(Concurrency Testing)使用,體現的是服務端承受的最大並發訪問數。
在實際的性能測試中,經常接觸到「並發用戶數」、「系統用戶數」和「同時在線用戶數」的概念,下面引用一本書的例子來說明它們之間的差別。
假設有一個OA系統,該系統有2000個使用用戶——這就是說,可能使用該OA系統的用戶總數是2000 名,這個概念就是「系統用戶數」,該系統有一個「在線統計」功能(系統用一個全局變量計數所有已登錄的用戶),從在線統計功能中可以得到,最高峰時有500人在線(這個500 就是一般所說的「同時在線人數」),根據我們對業務並發用戶數的定義,這500 就是整個系統使用時最大的業務並發用戶數。當然,500 這個數值只是表明在最高峰時刻有500 個用戶登錄了系統,並不表示實際伺服器承受的壓力。因為伺服器承受的壓力還與具體的用戶訪問模式相關。
根據我們對業務並發用戶數 的定義,這500 就是整個系統使用時最大的業務並發用戶數。當然,500 這個數值只是表明在最高峰時刻有500 個用戶登錄了系統,並不表示實際伺服器承受的壓力。因為伺服器承受的壓力還與具體的用戶訪問模式相關。
例如,在這500 個「同時使用系統」的用戶中,考察某一個時間點,在這個時間上,假設其中40%的用戶在饒有興致地看系統公告(注意:「看」這個動作是不會對服務端產生任何負擔的),20%的用戶在填寫複雜的表格(對用戶填寫的表格來說,只有在「提交」的時刻才會向服務端發送請求,填寫過程是不對服務端構成壓力的),20%部分用戶在發呆(也就是什麼也沒有做),剩下的20%用戶在不停地從一個頁面跳轉到另一個頁面——在這種場景下,可以說,只有20%的用戶真正對伺服器構成了壓力。因此,從上面的例子中可以看出,伺服器實際承受的壓力不只取決於業務並發用戶數,還取決於用戶的業務場景。
3、吞吐量
吞吐量是指「單位時間內系統處理的客戶請求的數量」,直接體現軟體系統的性能承載能力。一般來說,吞吐量用請求數/秒或是頁面數/秒來衡量,從業務的角度,吞吐量也可以用訪問人數/天或是處理的業務數/小時等單位來衡量。當然,從網絡的角度來說,也可以用字節數/天來考察網絡流量。對於交互式應用來說,吞吐量指標反映的是伺服器承受的壓力。
4、性能計數器
性能計數器(Counter)是描述伺服器或作業系統性能的一些數據指標。例如,對Windows 系統來說,使用內存數(Memory In Usage),進程時間(Total Process Time)等都是常見的計數器。
與性能計數器相關的另一個術語是「資源利用率」。該術語指的是系統各種資源的使用狀況。為了方便比較,一般用「資源的實際使用/總的資源可用量」形成資源利用率的數據,用以進行各種資源使用的比較。例如,我們會說到,「某某系統在承受10000 用戶的並發訪問時,Web 伺服器的CPU佔用率為68%,平均的內存佔用率為55%」,這其中,68%和55%就是典型的資源利用率的數值。
5、思考時間
思考時間(Think Time),也被稱為「休眠時間」,從業務的角度來說,這個時間指的是用戶在進行操作時,每個請求之間的間隔時間。從自動化測試實現的角度來說,要真實地模擬用戶操作,就必須在測試腳本中讓各個操作之間等待一段時間,體現在腳本中,具體而言,就是在操作之間放置一個Think 的函數,使得腳本在執行兩個操作之間等待一段時間。
6、TPS
TPS:Transaction per second,每秒鐘系統能夠處理的交易或者事務的數量。它是衡量系統處理能力的重要指標。
7、HPS
點擊率:HPS,每秒鐘用戶向WEB伺服器提交的HTTP請求數。這個指標是WEB應用特有的一個指標,WEB應用是"請求—響應"模式,用戶發出一次申請,伺服器就要處理一次,所以點擊是WEB應用能夠處理的交易的最小單位。如果把每次點擊定義為一個交易,點擊率和TPS就是一個概念。容易看出,點擊率越大,對伺服器的壓力越大。點擊率只是一個性能參考指標,重要的是分析點擊時產生的影響。需要注意的是,這裡的點擊並非指滑鼠的一次單擊操作,因為在一次單擊操作中,客戶端可能向伺服器發出多個HTTP請求。
-作者-
李鵬星,一隻愛碼字的IT老鳥,從程式設計師一路成長,一心夢想工作自由,財富自由的80後。