性能測試從零開始——LoadRunner入門(三)[3] 性能測試工具
“快”、“好”這只是用戶的主觀體驗,如果能讓這些感覺和要求被其他人正確地理解(尤其是對軟件人員),那么就需要用數據把上述用戶的感受量化并表達出來,這就是性能指標。
通常,衡量一個軟件系統性能的常見指標有:
1.響應時間(Response time)
響應時間就是用戶感受軟件系統為其服務所耗費的時間,對于網站系統來說,響應時間就是從點擊了一個頁面計時開始,到這個頁面完全在瀏覽器里展現計時結束的這一段時間間隔,看起來很簡單,但其實在這段響應時間內,軟件系統在幕后經過了一系列的處理工作,貫穿了整個系統節點。根據“管轄區域”不同,響應時間可以細分為:
(1)服務器端響應時間,這個時間指的是服務器完成交易請求執行的時間,不包括客戶端到服務器端的反應(請求和耗費在網絡上的通信時間),這個服務器端響應時間可以度量服務器的處理能力。
(2)網絡響應時間,這是網絡硬件傳輸交易請求和交易結果所耗費的時間。
(3)客戶端響應時間,這是客戶端在構建請求和展現交易結果時所耗費的時間,對于普通的瘦客戶端Web應用來說,這個時間很短,通??梢院雎圆挥?但是對于胖客戶端Web應用來說,比如Java applet、AJAX,由于客戶端內嵌了大量的邏輯處理,耗費的時間有可能很長,從而成為系統的瓶頸,這是要注意的一個地方。
那么客戶感受的響應時間其實是等于客戶端響應時間+服務器端響應時間+網絡響應時間。細分的目的是為了方便定位性能瓶頸出現在哪個節點上(何為性能瓶頸,下一節中介紹)。
2.吞吐量(Throughput)
吞吐量是我們常見的一個軟件性能指標,對于軟件系統來說,“吞”進去的是請求,“吐”出來的是結果,而吞吐量反映的就是軟件系統的“飯量”,也就是系統的處理能力,具體說來,就是指軟件系統在每單位時間內能處理多少個事務/請求/單位數據等。但它的定義比較靈活,在不同的場景下有不同的詮釋,比如數據庫的吞吐量指的是單位時間內,不同SQL語句的執行數量;而網絡的吞吐量指的是單位時間內在網絡上傳輸的數據流量。吞吐量的大小由負載(如用戶的數量)或行為方式來決定。舉個例子,下載文件比瀏覽網頁需要更高的網絡吞吐量。
3.資源使用率(Resource utilization)
常見的資源有:CPU占用率、內存使用率、磁盤I/O、網絡I/O。
我們將在Analysis結果分析一章中詳細介紹如何理解和分析這些指標。
4.點擊數(Hits per second)
點擊數是衡量Web Server處理能力的一個很有用的指標。需要明確的是:點擊數不是我們通常理解的用戶鼠標點擊次數,而是按照客戶端向Web Server發起了多少次http請求計算的,一次鼠標可能觸發多個http請求,這需要結合具體的Web系統實現來計算。
5.并發用戶數(Concurrent users)
并發用戶數用來度量服務器并發容量和同步協調能力。在客戶端指一批用戶同時執行一個操作。并發數反映了軟件系統的并發處理能力,和吞吐量不同的是,它大多是占用套接字、句柄等操作系統資源。
另外,度量軟件系統的性能指標還有系統恢復時間等,其實凡是用戶有關資源和時間的要求都可以被視作性能指標,都可以作為軟件系統的度量,而性能測試就是為了驗證這些性能指標是否被滿足。 軟件測試
原文轉自:http://www.anti-gravitydesign.com