併發測試

併發測試

主要指當測試多用戶併發訪問同一個應用、模塊、數據時是否產生隱藏的併發問題,如內存泄漏、線程鎖、資源爭用問題,幾乎所有的性能測試都會涉及併發測試。

概念


測試目的並非為了獲得性能指標,而是為了發現併發引起的問題。在具體的性能測試工作中,併發用戶往往都是藉助工具來模擬的,例如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 等。個人理解這個用戶數就是我們經常說的等價類和邊界值法來設定。