概念:
主要指當測試多個用戶並同時訪問同一個應用程式、同一個模組數據記錄時是否存在死鎖或其他性能問題,幾乎所有的性能測試都會涉及並發測試。
在具體的性能測試工作中,並發用戶往往都是藉助工具來模擬的,例如LoadRunner性能測試工具中叫做虛擬用戶;因為實際情況中去實現同時多人並發的測試環境要求比較高而測試成本高、測試時間也是比較長。
如何確定並發用戶數
想確定用戶並發數;必須知道系統所承載的線上用戶數;例如關註:用戶的總量、用戶平均線上數值、用戶最高峰線上數值。
例如:公司OA系統賬號或者總用戶有2000人;最高峰線上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
但是一般的做法是把每天訪問系統用戶數的10%作為平均的並發用戶數。最大的並發用戶數乘上一個值,2或者3.
假如說用戶要求系統每秒最大可以處理100個登入請求,10/25/50/75/100 個並發用戶來執行登入操作,然後觀察系統在不同負載下的回響時間和每秒事務數。如果用戶數在100的時候,回響時間還在允許範圍呢,就要加大用戶數,例如120 等 。個人理解這個用戶數就是我們經常說的等價類和邊界值法來設定。