性能測試之常見術語淺析
負載
對被測系統不斷施加壓力,直到性能指標超過預期或某項資源使用達到飽和,以驗證系統的處理極限,為系統性能調優提供依據;
並發
①狹義上的並發:所有用戶在同一時間點進行同樣的操作,一般指同一類型的業務場景,比如1000個用戶同時登陸系統;
②廣義上的並發:多個用戶與系統發生了交互,這些業務場景可以是相同的也可以是不同的,交叉請求和處理較多;
壓力
系統在一定飽和狀態下,例如CPU、內存等飽和情況下,系統能夠處理的會話能力,以及系統是否會出現錯誤
特點:主要目的是檢查系統處於壓力情況下應用的性能表現,重點在於有無出錯信息產生,系統對應用的響應時間等
事務
性能測試中,事務指的是從端到端,一個完整的操作過程,比如一次登錄、一次篩選條件查詢,一次支付等;
吞吐量
指在一次性能測試過程中網路上傳輸的數據量的總和,也可以這樣說在單次業務中,客戶端與伺服器端進行的數據交互總量;
對互動式應用來說,吞吐量指標反映伺服器承受的壓力,容量規劃的測試中,吞吐量是重點關注的指標,它能夠說明系統級別的負載能力,另外,在性能調優過程中,吞吐量指標也有重要的價值;
吞吐量和負載之間的關係:
①上升階段:吞吐量隨著負載的增加而增加,吞吐量和負載成正比;
②平穩階段:吞吐量隨著負載的增加而保持穩定,無太大變化或波動;
③下降階段:吞吐量隨著負載的增加而下降,吞吐量和負載成反比;
總結:吞吐量干不過負載!!!
如下圖所示:
a1面積越大,說明系統的性能能力越強,a2面積越大,說明系統穩定性越好,a3面積越大,說明系統的容錯能力越好(嘖嘖,圖有點丑。。。)
吞吐率
吞吐量/傳輸時間,即單位時間內網路上傳輸的數據量,也可以指單位時間內處理客戶請求數量,它是衡量網路性能的重要指標。
通常情況下,吞吐率用「位元組數/秒」來衡量,當然,也可以用「請求數/秒」和「頁面數/秒」來衡量;
TPS
Transaction Per Second:每秒事務數,指伺服器在單位時間內(秒)可以處理的事務數量,一般以request/second為單位;
PS:看到很多博客或性能測試人員將QPS和TPS混為一談,個人認為,他們是以測試結果的統計得到該結論的;
QPS是查詢,而TPS是事務,事務是查詢的入口,也包含其他類型的業務場景,因此QPS應該是TPS的子集!
QPS
Query Per Second:每秒查詢率,指伺服器在單位時間內(秒)處理的查詢請求速率;
PS:TPS和QPS都是衡量系統處理能力的重要指標,一般和並髮結合起來判斷系統的處理能力;
PV
Page View:頁面瀏覽量,通常是衡量一個頁面甚至網站流量的重要指標;
細分的話,有獨立訪問者數量、重複訪問者數量、單獨頁面訪問數量、用戶停留時間等類型;
RT/ART
Response Time/average Response Time:響應時間/平均響應時間,指一個事務花費多長時間完成;
一般來說,性能測試中平均響應時間更有代表意義。細分的話,還有最小最大響應時間,50%、90%用戶響應時間等;
Thinking Time
思考時間,在性能測試中,模擬用戶的真實操作場景。用戶操作的事務與事務之間是有一定間隔的,引入這個概念是為了並發測試(有交叉業務場景)時,業務場景比率更符合真實業務場景;
連接池
連接池是一個進程,多個連接在一個進程中存儲、管理,它是共享、可復用的;
當客戶端發起請求,先檢查是否有閑置連接,如果有,則分配該連接給其使用;如果沒有,則請求進入等待隊列(等待空閑連接分配,這個取決於調度配置)或新建一個連接對象供其使用
(取決於連接池有多少連接以及允許的最大連接數);
每次客戶端發起請求,如果都新建連接,會消耗很多的資源,連接池的存在及其特性,減少了連接的建立所消耗的資源以及節省了很多連接創建時間,給系統提供了更好的伸縮性,也有助於
伺服器性能的提升。
關於連接池中線程的狀態,可參考此篇博客:https://my.oschina.net/cctester/blog/991744
標準方差
各數據偏離平均數的距離(離均差)的平均數,它能反應一個數據集的離散程度。離散程度越大,數據越不可靠;
性能測試中引入這個術語,是為了對高峰期、平緩期的系統響應時間分布,不同業務場景的響應時間分布,以及I/o數在時間段上的分布等情況進行分析,以判斷系統的穩定性。
資源使用率
如下圖所示,資源指標與硬體資源消耗直接相關,而系統指標則與用戶場景及需求直接相關:
資源指標:
CPU使用率:指用戶進程與系統進程消耗的CPU時間百分比,長時間情況下,一般可接受上限不超過85%;
內存利用率:內存利用率=(1-空閑內存/總內存大小)*100%,一般至少有10%可用內存,內存使用率可接受上限為85%;
磁碟I/O: 磁碟主要用於存取數據,因此當說到IO操作的時候,就會存在兩種相對應的操作,存數據的時候對應的是寫IO操作,取數據的時候對應的是是讀IO操作,一般使用% Disk Time
(磁碟用於讀寫操作所佔用的時間百分比)度量磁碟讀寫性能;
網路帶寬:一般使用計數器Bytes Total/sec來度量,其表示為發送和接收位元組的速率,包括幀字元在內;判斷網路連接速度是否是瓶頸,可以用該計數器的值和目前網路的帶寬比較;
系統指標:
並發用戶數:單位時間內與系統發生交互的用戶數;
在線用戶數:某段時間內訪問系統的用戶數,這些用戶並不一定同時向系統提交請求;
平均響應時間:系統處理事務的響應時間的平均值;事務的響應時間是從客戶端提交訪問請求到客戶端接收到伺服器響應所消耗的時間;
事務成功率:性能測試中,定義事務用於度量一個或者多個業務流程的性能指標,如用戶登錄、保存訂單、提交訂單操作均可定義為事務,單位時間內系統可以成功完成多少個定義的事務,在一定程度上反應了系統的處理能力,一般以事務成功率來度量;
超時錯誤率:主要指事務由於超時或系統內部其它錯誤導致失敗佔總事務的比率;
推薦閱讀:
※混凝土保護塗層的性能測試研究
※軟體性能測試與可靠性測試
※使用五個安全測試步驟來保護你的應用程序
※如何進行安全性測試?
※Jmeter性能測試系列-測試數據構造