天天看點

“并發使用者數”、“系統使用者數”和“同時線上使用者數”的計算公式

    與并發使用者數相關的概念還包括“并發使用者數”、“系統使用者數”和“同時線上使用者數”,下面用一個實際的例子來說明它們之間的差别。

    假設有一個OA系統,該系統有2000個使用使用者——這就是說,可能使用該OA系統的使用者總數是2000名,這個概念就是“系統使用者數”,該系統有一個“線上統計”功能(系統用一個全局變量記數所有已登入的使用者),從線上統計功能中可以得到,最高峰時有500人線上(這個500就是一般所說的“同時線上人數”),那麼,系統的并發使用者數是多少呢? 

    根據我們對業務并發使用者數的定義,這500就是整個系統使用時最大的業務并發使用者數。當然,500這個數值隻是表明在最高峰時刻有500個使用者登入了系統,并不表示實際伺服器承受的壓力。因為伺服器承受的壓力還與具體的使用者通路模式相關。例如,在這500個“同時使用系統”的使用者中,考察某一個時間點,在這個時間上,假設其中40%的使用者在較有興緻地看系統公告(注意:“看”這個動作是不會對服務端産生任何負擔的),20%的使用者在填寫複雜的表格(對使用者填寫的表格來說,隻有在“送出”的時刻才會向服務端發送請求,填寫過程是不對服務端構成壓力的),20%部分使用者在發呆(也就是什麼也沒有做),剩下的20%使用者在不停地從一個頁面跳轉到另一個頁面——在這種場景下,可以說,隻有20%的使用者真正對伺服器構成了壓力。是以,從上面的例子中可以看出,伺服器實際承受的壓力不隻取決于業務并發使用者數,還取決于使用者的業務場景。

    在實際的性能測試工作中,測試人員一般比較關心的是業務并發使用者數,也就是從業務角度關注究竟應該設定多少個并發數比較合理,是以,在後面的讨論中,也是主要針對業務并發使用者數進行讨論,而且,為了友善,直接将業務并發使用者數稱為并發使用者數。 

       (1) 計算平均的并發使用者數: C = nL/T 

       (2) 并發使用者數峰值: C’ ≈ C+3根号C

        公式(1)中,C是平均的并發使用者數;n是login session的數量;L是login session的平均長度;T指考察的時間段長度。

        公式(2)則給出了并發使用者數峰值的計算方式中,其中,C’指并發使用者數的峰值,C就是公式(1)中得到的平均的并發使用者數。該公式的得出是假設使用者的login session産生符合泊松分布而估算得到的。

執行個體:

    假設有一個OA系統,該系統有3000個使用者,平均每天大約有400個使用者要通路該系統,對一個典型使用者來說,一天之内使用者從登入到退出該系統的平均時間為4小時,在一天的時間内,使用者隻在8小時内使用該系統。

則根據公式(1)和公式(2),可以得到:

          C = 400*4/8 = 200

          C’≈200+3*根号200 = 242 

    F=VU * R / T

    其中F為吞吐量,VU表示虛拟使用者個數,R表示每個虛拟使用者發出的請求數,T表示性能測試所用的時間

    R = T / TS

    TS為使用者思考時間

    計算思考時間的一般步驟:

    A、 首先計算出系統的并發使用者數

        C=nL / T      F=R×C

    B、 統計出系統平均的吞吐量

        F=VU * R / T R×C = VU * R / T

    C、 統計出平均每個使用者發出的請求數量

        R=u*C*T/VU

    D、根據公式計算出思考時間

        TS=T/R

    缺陷檢測有效性百分比DDE=TDFT/(TDFC+TDFT)×100%

    其中:TDFT=測試過程中發現的全部缺陷(即由測試組發現的),TDFC=客戶發現的全部缺陷(在版本傳遞後一個标準點開始測量,如,半年以後)

    缺陷排除有效性百分比DRE=(TDCT/TDFT)×100%

    其中:TDCT=測試中改正的全部缺陷,TDFT=測試過程中發現的全部缺陷

    測試用例設計效率百分比TDE=(TDFT/NTC)×100%

    其中:TDFT=測試過程中發現的全部缺陷,NTC=運作的測試用例數

    以下公式較适用于白盒測試

    功能覆寫率= 至少被執行一次的測試功能點數/ 測試功能點總數 (功能點)

    需求覆寫率= 被驗證到的需求數量 /總的需求數量 (需求)

    覆寫率= 至少被執行一次的測試用例數/ 應執行的測試用例總數 (測試用例)

    語句覆寫率= 至少被執行一次的語句數量/ 有效的程式代碼行數

    判定覆寫率= 判定結果被評價的次數 / 判定結果總數

    條件覆寫率= 條件操作數值至少被評價一次的數量 / 條件操作數值的總數

    判定條件覆寫率= 條件操作數值或判定結果至少被評價一次的數量/(條件操作數值總數+判定結果總數)

    上下文判定覆寫率= 上下文内已執行的判定分支數和/(上下文數*上下文内的判定分支總數)

    基于狀态的上下文入口覆寫率= 累加每個狀态内執行到的方法數/(狀态數*類内方法總數)

    分支條件組合覆寫率= 被評測到的分支條件組合數/分支條件組合數

    路徑覆寫率= 至少被執行一次的路徑數/程式總路徑數