【性能測試】關於系統用戶數,並發用戶數,在線用戶數,吞吐量


1、概念

系統用戶數

狹義上來說,可以理解為系統注冊用戶數;廣義上來說,可以理解為所有訪問過系統的用戶數

在線用戶數

狹義上來說,可以理解為已登錄系統的用戶數;廣義來說,可以理解為當前時間訪問系統的用戶數。

並發用戶數

可以分兩種:

  1. 同一時間點,執行同一(業務)操作的用戶數

  2. 同一時間點,執行不同(業務)操作的用戶數

注意:服務器實際承受的壓力並不完全取決於並發用戶數,詳情見下面的例子。


以51測試論壇為例

作為專業軟件測試論壇,會有很多測試者去論壇注冊帳號。

假設到現在已有75萬在該論壇注冊會員,那我們可以說,該論壇擁有75萬的系統用戶;

假設在某日早上9點,已有10萬會員登陸了論壇,那么我們可以說,該論壇在某日9點時擁有10萬的在線用戶;

假設在這10萬已登陸會員中,某個時間點,有2萬會員正在提交新帖子,有3萬會員正在編寫帖子(假設編寫帖子不會產生服務器請求操作);有1萬會員在帖子頁面瀏覽某帖子內容;有1萬會員正在發呆,啥也不做;還有3萬會員正在點擊某個帖子,那么我們可以說,某時間點,有2萬個並發用戶在提交新帖子,有3萬個並發用戶在編寫帖子,有1萬個並發用戶瀏覽帖子內容,有3萬個並發用戶在點擊某個帖子,,系統有9萬的並發用戶。

值得注意的是,這9萬並發用戶中,真正對系統產生壓力的只有5萬用戶,即提交新帖和點擊帖子的用戶。換句話說,僅對系統發起了請求的並發用戶才會對系統施加壓力。


這也告訴我們,要好好測試一個系統的性能,必須先對用戶的(業務)操作進行分析,分離出用戶最常使用、最關心的(業務)操作,因為使用這些操作的人多,所以容易產生並發的情況。

計算公式

C = nL/T   # 公式1

其中,C 是平均並發用戶數;n是 login session的數量;L是login session的平均時長。T是考查的時間段長度。

注:login session指用戶從登陸系統到退出系統之間的時間段。

Cmax = C + 3  # 公式2

其中,Cmax 是並發用戶數的峰值;C為第一個公式中的並發用戶數。

注意:

  1. 公式的得出是假設用戶login session產生符合泊松分布而估算得到的。
  2. 因為要精確估算平均用戶數和login session的長度並不容易,同時用戶的業務操作存在一定的時間分布,所以上述公式可能並不是很精確
  3. 基於第2點的建議:1)基於更細粒度的時間進行考察;2)考慮業務操作時間分布

2、吞吐量

性能測試中,可以俠義的理解為“單位時間內系統處理的用戶請求的數量”。一般情況,吞吐量用請求數/秒、頁面數/秒來衡量,從業務的角度,吞吐量也可用單位時間內的訪問人數、處理的業務數等進行衡量。從網絡角度來,也可以單位時間內的處理的數據量等進行衡量。

  • 對於一個Web應用系統來說,從系統的處理能力考慮,可以以頁面數/秒作為吞吐量的標准;對一個銀行的前台業務來說,可以以其單位時間內處理的業務數作為吞吐量的標准。

通常,對於交互式應用,用戶直接的體驗是“響應時間”,通過“並發用戶數”和“響應時間”可以確定系統的性能規划;但對於非交互式應用,用“吞吐量”來描述我們對系統性能的期望可能更加合理。

作為性能測試的主要關注指標,吞吐量和並發用戶數之間存在一定的聯系,在沒有遇到性能瓶頸的時候,吞吐量可以采用如下公式計算:

F = Nvu*R/3  # 公式3

關於系統用戶數,並發用戶數,在線用戶數,吞吐量(摘)

其中,F表示吞吐量, Nvu表示虛擬用戶數,R表示每個虛擬用戶數發起的請求數,T表示性能測試所用的時間。

注意:
雖然吞吐量指標可被看作是系統承受壓力的體現,但是不同並發用戶數量的情況下,對同一個系統施加相同的吞吐量壓力,很可能會得到不同的測試結果。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM