軟件測(cè)試 | 巧用監(jiān)聽器—識(shí)別性能缺陷
圖形結(jié)果(Graph Results)——性能測(cè)試的王者利器
圖形結(jié)果主要包含4種統(tǒng)計(jì)信息,即當(dāng)前采樣響應(yīng)時(shí)長(zhǎng)(黑色)、當(dāng)前平均采樣響應(yīng)時(shí)長(zhǎng)(藍(lán)色)、當(dāng)前采樣響應(yīng)時(shí)長(zhǎng)標(biāo)準(zhǔn)差(紅色)、當(dāng)前吞吐率(綠色),如圖12-4所示。其中最有價(jià)值的是:平均采樣響應(yīng)時(shí)長(zhǎng)、采樣響應(yīng)時(shí)長(zhǎng)標(biāo)準(zhǔn)差、吞吐率。
(1)通過觀察平均采樣響應(yīng)時(shí)長(zhǎng)曲線,用戶可以直觀地看到,隨著并發(fā)壓力的加大,以及性能測(cè)試時(shí)間的延長(zhǎng),系統(tǒng)性能所發(fā)生的變化。正常情況下,平均采樣響應(yīng)時(shí)長(zhǎng)曲線應(yīng)該是平滑的,并大致平行于圖形下邊界。
下面是幾種可能存在性能問題的平均采樣響應(yīng)時(shí)長(zhǎng)曲線的示意圖。
1平均響應(yīng)時(shí)長(zhǎng)在初始階段跳升,而后逐漸平穩(wěn)下來(lái),如圖12-27所示。這說明系統(tǒng)在初步階段響應(yīng)比較慢,導(dǎo)致這種現(xiàn)象的原因有一種:一是系統(tǒng)在初始階段存在性能缺陷,需要進(jìn)一步優(yōu)化,如數(shù)據(jù)庫(kù)查詢緩慢。二是系統(tǒng)有緩存機(jī)制,而性能測(cè)試數(shù)據(jù)在測(cè)試期間沒有變化,如此一來(lái)同樣的數(shù)據(jù)在初始階段的響應(yīng)時(shí)長(zhǎng)肯定較慢,而后續(xù)響應(yīng)時(shí)長(zhǎng)基本一致。這屬于性能測(cè)試數(shù)據(jù)準(zhǔn)備的問題,不是性能缺陷,需調(diào)整后再繼續(xù)測(cè)試。三是系統(tǒng)架構(gòu)設(shè)計(jì)導(dǎo)致的固有現(xiàn)象,例如,在系統(tǒng)接收到第一個(gè)請(qǐng)求后,才去建立應(yīng)用服務(wù)器到數(shù)據(jù)庫(kù)的連接,后續(xù)一段時(shí)間內(nèi)不會(huì)釋放連接。這種情況是屬于性能缺陷,需要測(cè)試人員與系統(tǒng)架構(gòu)師、開發(fā)人員、最終用戶等角色一起確認(rèn)。

2.平均響應(yīng)時(shí)長(zhǎng)持續(xù)變大,圖形變得越來(lái)越陡峭,如圖12-28所示。對(duì)于這種情況,基本可以肯定存在性能缺陷,如內(nèi)存泄露。測(cè)試人員需要及時(shí)上報(bào)缺陷,并協(xié)助開發(fā)定位問題。測(cè)試人員可以通過監(jiān)控系統(tǒng)日志、監(jiān)控應(yīng)用服務(wù)器狀態(tài)等常見方法,來(lái)嘗試定位問題。

3.平均響應(yīng)時(shí)長(zhǎng)在性能測(cè)試期間,突然發(fā)生跳變,然后又恢復(fù)正常,如圖12-29所示。對(duì)于這一情況,即可能源于系統(tǒng)性能缺陷,又可能是由于測(cè)試環(huán)境不穩(wěn)定所造成的。分析問題,首先要排除測(cè)試環(huán)境不穩(wěn)定帶來(lái)的影響,一是檢查應(yīng)用服務(wù)器狀態(tài)(CPU占用、內(nèi)存占用等),如果待測(cè)系統(tǒng)與其他應(yīng)用系統(tǒng)公用服務(wù)器,需排除其他系統(tǒng)帶來(lái)的影響。二是檢查測(cè)試環(huán)境網(wǎng)絡(luò)是否存在擁塞。如果能夠排除測(cè)試環(huán)境的影響,測(cè)試人員接下來(lái)應(yīng)該通過多種手段(監(jiān)控應(yīng)用服務(wù)器、監(jiān)控?cái)?shù)據(jù)庫(kù)、監(jiān)控系統(tǒng)日志等)來(lái)確認(rèn)是否存在性能缺陷,例如,對(duì)某些特定測(cè)試數(shù)據(jù)的處理存在問題。

(2)通過觀察采樣響應(yīng)時(shí)長(zhǎng)標(biāo)準(zhǔn)差,可以判斷采樣數(shù)據(jù)的分布是否均勻。當(dāng)采樣數(shù)據(jù)分布不均勻,提示可能存在性能缺陷。標(biāo)準(zhǔn)差(Standard Deviation),也稱均方差(Mean Square Error),是各數(shù)據(jù)偏離平均數(shù)的距離的平均數(shù),它是離均差平方和平均后的方根,標(biāo)準(zhǔn)差是方根的算數(shù)平方根。標(biāo)準(zhǔn)差能反映一個(gè)數(shù)據(jù)集的離散程度。平均數(shù)相同的,標(biāo)準(zhǔn)差未必相同。如圖12-30所示為標(biāo)準(zhǔn)差的計(jì)算公式。標(biāo)準(zhǔn)差越高,表示測(cè)試數(shù)據(jù)越離散;反之,標(biāo)準(zhǔn)差越低,代表測(cè)試的數(shù)據(jù)越平穩(wěn)。顯然,理想的采樣響應(yīng)時(shí)長(zhǎng)標(biāo)準(zhǔn)差曲線,也應(yīng)該是平滑的。

(3)吞吐率表征服務(wù)器每分鐘處理的實(shí)際采樣數(shù)。測(cè)試人員可以通過增加并發(fā)線程或減少腳本中的延遲,來(lái)找到系統(tǒng)支持的最大吞吐率。接著將系統(tǒng)實(shí)際支持的最大吞吐率和預(yù)期吞吐率進(jìn)行比較,以便確認(rèn)系統(tǒng)表現(xiàn)是否滿足用戶需求。參考圖12-4中的綠色吞吐率曲線,該曲線隨著并發(fā)壓力逐步加大,逐漸趨于平滑,這就說明系統(tǒng)達(dá)到了其支持的最大吞吐率。如果進(jìn)一步加大壓力,系統(tǒng)響應(yīng)會(huì)變慢,甚至發(fā)生崩潰。如果系統(tǒng)支持 最大吞吐率不能達(dá)到系統(tǒng)設(shè)計(jì)預(yù)期值,測(cè)試人員應(yīng)該及時(shí)上報(bào)性能缺陷,并協(xié)助開發(fā)人員定位問題。
搜索微信公眾號(hào):霍格沃茲測(cè)試學(xué)院