性能測試基礎知識

一、定義前端

對響應時間的評估、分析,結合應用的架構和實現細節找出問題,並最終確認問題獲得解決的過程 web

二、影響軟件性能的因素數據庫

網絡環境、數據庫服務器、應用服務器、業務邏輯的實現方式、系統採用的架構、代碼的優化程度、使用者的使用方式等服務器

三、測試模型網絡

通用的軟件測試過程模型(PTGM)、敏捷軟件測試模型(ATPM)架構

四、軟件性能測試的應用領域 併發

能力驗證、規劃能力、性能調優、瓶頸發現、性能基準比較框架

 

一:基礎篇前端性能

一、軟件性能測試的基本概念數據庫設計

1.1 性能是一種指標(軟件性能對其及時性要求的符合程度)

    性能的及時性用響應時間或者吞吐量表示

    響應時間:對請求作出響應所須要的時間

例子:交互式的應用(web):用戶感覺到的響應時間

     非交互式的應用(嵌入式或者銀行等業務處理系統):系統對事件產生響應的time

1.1.1 用戶視角的軟件性能

端→端

用戶操做——數據操做請求——(應用服務器)服務端響應——返回數據——用戶端

1.1.2 管理員視角的軟件性能 

服務器資源使用情況是否合理                       資源利用率

數據庫資源使用情況是否合理                       資源利用率

系統可否能夠實現擴展                            系統可擴展性

系統的最大併發,壓力是多少                       

併發:最多能支持多少用戶訪問                     系統容量

壓力:最大的業務處理量

系統可能的瓶頸在哪裏                            系統可擴展性

更換什麼設備能提高系能                          系統可擴展性

可否支持7*24小時的業務訪問                      系統穩定性

1.1.3 開發視角的軟件性能 

架構設計是否合理                               系統架構

數據庫設計是否存在問題                          數據庫設計

代碼是否存在性能方面的問題                       代碼

系統中是否存在不合理的內存使用方式                代碼

系統中是否存在不合理的線程同步方式                設計與代碼

系統中是否存在不合理的資源競爭                   設計與代碼 

1.1.4 web前端性能

Web應用的前端響應時間:頁面加載時間

其中包括:

1.對HTML的解析讀取

2.對頁面圖片及CSS等文件的獲取和加載

3.客戶端腳本(JavaScript)的執行時間

4.對頁面進行展示所花的時間 

 

1.2軟件性能的幾個主要術語

1.2.1 

合理的響應時間取決於實際用戶需求

1.2.2 

併發用戶數:N數值的用戶同時訪問系統

1.服務器實際承受的壓力不僅取決於併發用戶數,還取決於用戶的業務場景

2.服務端承受的最大併發訪問數取決於併發用戶數+業務場景

業務場景:經過服務器日誌的分析得出的結果

日誌分析方法:對服務器日誌進行分析,瞭解系統用戶的使用狀態,計算出服務器承受的最大併發用戶數量

特色:準確度/可信度高

適用:internet應用(沒法估算用戶量和行爲方式)

推薦日誌分析工具:AWStats:http://awstats.sourceforge.net/

這是一個基於Perl的日誌分析工具,可對Apache/IIS的日誌進行分析,還有良好的擴展支持

 

用於估算併發用戶數的公式(僅供參考)

平均用戶併發數:C=n*L/T

峯值併發用戶數:C›≈C+3C 

其中,C是平均併發數,n是用戶從登錄到退出系統的時間段,L是系統使用時間段的平均值,T是使用系統的時間段數值,C›指併發用戶數的峯值

對於企業內部使用的web系統,還有精度更小的一種公式

平均用戶併發數:C=n/10

峯值用戶併發數:C›≈r*C 

其中,r值通常取2—3.這種方法要求不太嚴格,只有不多數據支持分析的性能測試中使用

1.2.3 吞吐量

定義:單位時間內系統處理客戶請求的數量

通常來講,請求數/每秒OR頁面數/每秒來衡量

從業務角度來講,訪問人數/天OR處理的業務數/小時來衡量(PV、UV)

從網絡角度來講,字節數/天來考察網絡流量 

對於交互式應用,吞吐量指標反映服務器承受的壓力,在容量規劃測試中,吞吐量是個很重要的指標,由於它能說明系統級別的負載能力

Web系統的性能測試中,吞吐量指標能夠在兩個方面發揮做用

1.協助設計性能測試場景,以及衡量性能測試場景是否達到預期的設計目標

2.協助分析性能瓶頸

3.沒有遇到瓶頸以前,吞吐量和併發用戶之間存在的關係能夠用下面的公式表達:

  F=N(vu)*R/T

F表示吞吐量,N表示VU的個數,R表示每一個VU發送的請求(點擊)數量,T表示性能測試所用的時間

不一樣併發用戶數量狀況下,對同一系統施加相同的吞吐量,極可能獲得不一樣結果

 

PS:大部分性能測試中,單擊數(Hits)指客戶端發出的HTTP的請求數量,而不是指用戶在頁面上的一次單擊事件。

好比:一次單擊事件請求頁面A,頁面A包含3張圖片和一個框架(Frame),則此次單擊共產生了5個Hits(包括對頁面A自己的請求) 

1.2.4性能計數器(Counter)

定義:描述服務器或者操做系統性能的一些數據指標

做用:監控、分析

分析系統可擴展性,進行性能瓶頸的定位時,計數器取值很是關鍵

相關指標:資源利用率:系統各類資源的使用狀況 

1.2.5思考時間(Think Time)

休眠時間:用戶操做時間每一個請求的間隔時間

體如今腳本中,就是操做之間放一個Think函數,使腳本在執行兩個操做之間等待一段時間

公式F=N(vu)*R/T吞吐量是VU數量N,請求數R和時間T的函數,其中,R又能夠用時間T和用戶的思考時間Ts來計算:

  R=T/Ts   (請求數=時間/請求間隔時間)

推薦一個計算思考時間的方法:

1.首先計算出系統的併發用戶數

2.統計出系統平均的吞吐量

3.統計出平均每用戶發出的請求數量

4.根據上面的公式得出請求時間

相關文章
相關標籤/搜索