近日,Hitest在其技術博客上發表了一篇題為《並發用戶數與TPS之間的關系》的
文章,文章對TPS和並發用戶數做了詳細的解釋,並針對
性能測試中系統性能的衡量維度和測試策略給出了自己的建議。Hitest是
阿里巴巴技術質量部提供的一款Web&移動應用安全測試SaaS化服務平台,旨在幫助開發者簡單快捷地進行
安全測試。
在文中,作者首先對並發用戶數和TPS做了解釋:
並發用戶數:是指現實系統中操作業務的用戶,在性能測試工具中,一般稱為虛擬用戶數(Virutal User)。並發用戶數和注冊用戶數、在線用戶數的概念不同,並發用戶數一定會對服務器產生壓力的,而在線用戶數只是 ”掛” 在系統上,對服務器不產生壓力,注冊用戶數一般指的是
數據庫中存在的用戶數。
TPS:Transaction Per Second, 每秒事務數, 是衡量系統性能的一個非常重要的指標。
作者認為現在很多從業人員在做性能測試時,都錯誤的認為系統能支撐的並發用戶數越多,系統的性能就越好。要理解這個問題,首先需要了解TPS和並發用戶數之間的關系:
TPS就是每秒事務數,但是事務是基於虛擬用戶數的,假如1個虛擬用戶在1秒內完成1筆事務,那么TPS明顯就是1;如果某筆業務響應時間是1ms,那么1個用戶在1秒內能完成1000筆事務,TPS就是1000了;如果某筆業務響應時間是1s,那么1個用戶在1秒內只能完成1筆事務,要想達到1000TPS,至少需要1000個用戶;因此可以說1個用戶可以產生1000TPS,1000個用戶也可以產生1000TPS,無非是看響應時間快慢。
也就是說,在評定服務器的性能時,應該結合TPS和並發用戶數,以TPS為主,並發用戶數為輔來衡量系統的性能。如果必須要用並發用戶數來衡量的話,需要一個前提,那就是交易在多長時間內完成,因為在系統負載不高的情況下,將思考時間(思考時間的值等於交易響應時間)加到腳本中,並發用戶數基本可以增加一倍,因此用並發用戶數來衡量系統的性能沒太大的意義。
作者最后做了綜述,他認為在性能測試時並不需要用上萬的用戶並發去進行測試,如果只需要保證系統處理業務時間足夠快,幾百個用戶甚至幾十個用戶就可以達到目的。據他了解,很多專家做過的性能測試項目基本都沒有超過5000用戶並發。因此對於大型系統、業務量非常高、硬件配置足夠多的情況下,5000用戶並發就足夠了;對於中小型系統,1000用戶並發就足夠了。
性能測試需要一套標准化流程及測試策略,在實際測試時我們還需要考慮其它方面的問題,比如如何模擬成千上萬來自不同地區用戶的訪問場景、如何選用合適的測試軟件。性能測試對一些小的團隊來說並非易事,不過前段時間阿里雲發布了性能測試服務PTS,PTS可以幫助開發者通過分布式並發
壓力測試,模擬指定區域和指定數量的用戶同時訪問,提前預知網站承載力。這就是
雲計算給我們帶來的便利。
鏈接:http://www.51testing.com/html/60/n-873760.html