性能測試的有關(guān)定義
性能
(
perfotmance
)
——
應(yīng)用程序的性能是進行典型操作所需的時間。性能常常用
“
響應(yīng)時間
”
的標(biāo)準(zhǔn)來衡量。性能經(jīng)常是重要的業(yè)務(wù)需求之一。
?
響應(yīng)時間
(
response time
)
——
是應(yīng)用程序處理一個請求所需的時間
(
比如:從用戶的瀏覽器得到的一個
HTTP
請求
)
。一般我們對平均響應(yīng)時間感興趣,在負(fù)載增大時響應(yīng)時間的一貫性也很重要。提高負(fù)載后若響應(yīng)時間曲線出現(xiàn)鋸齒,往往說明性能乏善可陳,還有潛在的不穩(wěn)定。
?
延遲時間
(
latency
)
——是從應(yīng)用程序得到反饋所需的最少時間(不管程序是否需要做多工作才能得到這個反饋,遠(yuǎn)程方法調(diào)用具有很長的延遲;不管被調(diào)用的方法是否成功,都有一個固定的最小開銷)。
?
吞吐量(
throughput
)——是程序或者組件在一段給定時間內(nèi)所能進行工作的總和(對
web
應(yīng)用來說,常常用每秒點擊率來衡量;對事務(wù)處理應(yīng)用來說,則是每秒能完成的事務(wù)數(shù))。
?
可伸縮性(
scalability
)——指應(yīng)用程序如何應(yīng)對增長的流量。說到可伸縮性的時候,我們通常指向上可伸縮(
scaling up
),以便應(yīng)對更大的負(fù)載。可伸縮性經(jīng)常等價于水平可伸縮性(
horizontal scalability
):向上伸縮到服務(wù)器集群來提高吞吐量。 我們也可以通過把應(yīng)用轉(zhuǎn)移到更強的服務(wù)器上來提高吞吐量。后者要簡單得多,但顯然并不能讓應(yīng)用更牢固,也只能得到有限的提高。
另一種選擇是垂直伸縮(
vertical scaling
):在每臺服務(wù)器上運行多份服務(wù)。“垂直伸縮”這個術(shù)語被
Fowler
用來指“為單臺服務(wù)器增加更多的計算能力”,比如添加額外的
CPU
或者內(nèi)存。
性能和可伸縮性有時候在現(xiàn)實中是對立的。能在單臺服務(wù)器上高性能運行的應(yīng)用,卻可能無法被部署到集群中, 比如:為了獲得高性能,針對每個用戶在
session
中維護大量的數(shù)據(jù);而在集群環(huán)境下,這些數(shù)據(jù)無法被高效地復(fù)制。然而,必須意識到,性能地下的應(yīng)用同樣不會具有很好的可伸縮性。如果應(yīng)用程序在單臺服務(wù)器上浪費資源,就以為著即便在集群中運行,也只不過是浪費更多的資源。
?
性能測試簡單說,就是在預(yù)期的壓力下,我的應(yīng)用能跑多快。注意,這里的壓力是你預(yù)期的,更多的時候就是你的性能指標(biāo)。
負(fù)載測試(
load test
)——目標(biāo)是給系統(tǒng)以期望的負(fù)載量[
在沒有速度要求的情況下,我的應(yīng)用能支撐多少的并發(fā)用戶,這里更多的是考慮容量。
]
壓力測試( stress test )——目標(biāo)是在超過期望能力時確定系統(tǒng)行為[ 超過容量壓力下的表現(xiàn),也關(guān)注應(yīng)用的恢復(fù)能力,這里更多的是關(guān)注系統(tǒng)的變化,屬于健壯性測試(robustness?)一類 ]
穩(wěn)定性測試 ( stability?test )—— 測試系統(tǒng)長時間運行的表現(xiàn),更多的是發(fā)現(xiàn)一些資源泄漏等問題,一般壓力隨便設(shè)置。
基準(zhǔn)測試對比性測試 ( benchmark ) ——一般用來廠商之間同類產(chǎn)品之間,相同產(chǎn)品版本之間的對比。
posted on 2006-04-13 11:10 戀戀冬季 閱讀(347) 評論(0) 編輯 收藏 所屬分類: 測試資料