背景:公司項目需要第三方評測中心進行評測,其中一個指標是系統支持最大10萬在線用戶登錄。
分析:
1、並發10萬個用戶去測試不現實,並發數太大,公司無支撐該測試的服務器資源。
2、並發某個數量級的用戶(現有資源可承受的,如1000並發用戶)來推斷系統是否滿足在線用戶熟支持10萬個以上。但這種做法不太受認可。
這里就涉及到在線用戶數、並發用戶數和系統用戶數的概念性問題了:
系統用戶數這邊比較好測試,屬於容量問題。如系統支持100萬用戶,一般在數據庫創建超100萬個不同用戶名的用戶即可。
並發用戶數是指某一時刻同時向服務器發送請求的用戶數,與服務器有交互的過程。如系統支持100個並發用戶,直接用LR壓100並發不報錯即可。
在線用戶數是指用戶同時在一定時間段的在線數量,不一定與服務器在交互。如系統支持10萬個在線用戶數,測試方案如何?
->不能將在線用戶數和並發用戶數混為一談,這個不同概念的東西。當然,如果指標低,能用並發的方式去測試最好,但一般來說,在線的用戶數指標很大,難以用並發的方式去測試。而且在線用戶數不是所有用戶都正在並發交互,如一個網頁,可能有20%是在瀏覽,20%在提交事務,50%在掛着沒操作,所以真正的並發的用戶不多。有些人說用比率或公式來推算,這里就不做說明了。
其中一種測試思路如下(web系統):
在系統session不超時或時間范圍內,並發將10萬個不同用戶登錄上系統,以此來驗證系統滿足支持在線用戶數達到10萬個。
方案:
1、先在系統創建10萬個不同登錄名的用戶
2、在web頁面設置顯示字段,每有一個用戶登錄系統就顯示在線用戶數+1(便於直觀顯示)
3、用LR參數化登錄名稱,並發200個用戶跑一段時間(視視情況而定),順序的把10萬個不同用戶登入系統
以上方案只是應付評測,一定程度上違背了真正的測試。
PS:如果真的想要評估系統的性能,最好還是模擬用戶實際使用情況來定制測試方案來去真實的測試。