第1章 軟件性能測(cè)試基本概念
1.1什么是軟件性能
性能是一種指標(biāo),表明軟件系統(tǒng)或構(gòu)件對(duì)于其及時(shí)性要求的符合程度;其次,性能是軟件產(chǎn)品的一種特性,可以用時(shí)間來(lái)進(jìn)行度量.
性能的及時(shí)性用響應(yīng)時(shí)間或者吞吐量來(lái)衡量.
對(duì)于交互式應(yīng)用(例如典型的web應(yīng)用)來(lái)說(shuō),我們一般以用戶感受到的響應(yīng)時(shí)間來(lái)描述系統(tǒng)的性能,而對(duì)于非交互式應(yīng)用(嵌入式系統(tǒng)或者銀行等的業(yè)務(wù)處理系統(tǒng))而言,響應(yīng)時(shí)間是指系統(tǒng)對(duì)事件產(chǎn)生響應(yīng)所需要的時(shí)間.
1.1.1用戶視角的軟件性能
軟件對(duì)用戶操作的響應(yīng)時(shí)間.分客觀和主觀兩種情況.
1.1.2管理員視角的軟件性能
系統(tǒng)的響應(yīng)時(shí)間+系統(tǒng)狀態(tài)的相關(guān)信息.(系統(tǒng)的可擴(kuò)展性\并發(fā)能力等指標(biāo))
1.1.3開(kāi)發(fā)視角的軟件性能
響應(yīng)時(shí)間+性能瓶頸.
如何通過(guò)調(diào)整設(shè)計(jì)和代碼實(shí)現(xiàn),或是如何通過(guò)調(diào)整系統(tǒng)設(shè)置等方法提高軟件的性能表現(xiàn).
對(duì)軟件性能問(wèn)題進(jìn)行定位,了解性能的制約因素和引起性能問(wèn)題的關(guān)鍵原因.
1.1.4總結(jié)
1.2軟件性能的幾個(gè)主要術(shù)語(yǔ)
1.2.1響應(yīng)時(shí)間
對(duì)請(qǐng)求做出響應(yīng)需要的時(shí)間.
合理的響應(yīng)時(shí)間取決于實(shí)際的用戶需求.
1.2.2并發(fā)用戶數(shù)
1)業(yè)務(wù)角度 業(yè)務(wù)并發(fā)數(shù)
2)服務(wù)端承受的壓力 并發(fā)數(shù)
1.2.3吞吐量
吞吐量是指”單位時(shí)間內(nèi)系統(tǒng)處理的客戶請(qǐng)求的數(shù)量”,直接體現(xiàn)軟件系統(tǒng)的性能承載能力.一般來(lái)說(shuō),吞吐量用請(qǐng)求數(shù)/秒或者是頁(yè)面數(shù)/秒來(lái)衡量,從業(yè)務(wù)的角度,吞吐量也可以用訪問(wèn)人數(shù)/天或者是處理的業(yè)務(wù)數(shù)/小時(shí)等單位來(lái)衡量.當(dāng)然,從網(wǎng)絡(luò)的角度來(lái)說(shuō),也可以從字節(jié)數(shù)/天來(lái)考察網(wǎng)絡(luò)流量.
不同的并發(fā)用戶數(shù),對(duì)同一個(gè)系統(tǒng)施加相同的吞吐量壓力,很可能得到不同的測(cè)試結(jié)果.
吞吐量本身是個(gè)直觀的指標(biāo),兩個(gè)不同系統(tǒng)可能具有不同的用戶數(shù)和用戶使用模式,但如果具有基本一直的吞吐量,則可以說(shuō),他們具有基本相同的平均處理能力.
1.2.4性能計(jì)數(shù)器
性能計(jì)數(shù)器(Counter)是描述服務(wù)器或者操作系統(tǒng)性能的一些數(shù)據(jù)指標(biāo).例如,對(duì)于windows系統(tǒng)來(lái)說(shuō),使用內(nèi)存數(shù)(Memory In Usage),進(jìn)程時(shí)間(Total Process Time)等都是常見(jiàn)的計(jì)數(shù)器.
在性能測(cè)試中常用資源利用率進(jìn)行橫向的對(duì)比.e.g.在進(jìn)行測(cè)試時(shí)發(fā)現(xiàn),資源A的使用率達(dá)到了接近100%的數(shù)值,而其他資源利用率都處于比較低的水平,則可以很清楚地知道,資源A就很有可能是系統(tǒng)的一個(gè)性能瓶頸.
1.2.5思考時(shí)間
業(yè)務(wù)角度:這個(gè)時(shí)間指的是用戶在進(jìn)行操作時(shí),每個(gè)請(qǐng)求之間的間隔時(shí)間.
如果測(cè)試的目的是為了”驗(yàn)證應(yīng)用系統(tǒng)具有預(yù)期的能力”(也就是所說(shuō)的”能力驗(yàn)證”的應(yīng)用領(lǐng)域),就應(yīng)該盡量模仿用戶在使用業(yè)務(wù)時(shí)的真實(shí)思考時(shí)間;如果目的是進(jìn)行更一般的研究,例如”了解系統(tǒng)在壓力下的性能水平”或者”了解系統(tǒng)承受壓力的能力”(也就是所說(shuō)的”規(guī)劃能力”的應(yīng)用領(lǐng)域),則可以采用0思考時(shí)間.
1.3軟件性能測(cè)試方法論
1.3.1SEI負(fù)載測(cè)試計(jì)劃過(guò)程
關(guān)注于負(fù)載測(cè)試計(jì)劃的方法,其目標(biāo)是產(chǎn)生”清晰,易理解,可驗(yàn)證的負(fù)載測(cè)試計(jì)劃”.過(guò)程包括6個(gè)區(qū)域:目標(biāo),用戶,用例,生產(chǎn)環(huán)境,測(cè)試環(huán)境和測(cè)試場(chǎng)景.
1.3.2RBI方法
RBI(Rapid Bottleneck Identify)方法是一種用于快速識(shí)別系統(tǒng)性能瓶頸的方法.給方法基于以下一些事實(shí):
1.發(fā)現(xiàn)的80%系統(tǒng)的性能瓶頸都有吞吐量制約.
2,并發(fā)用戶數(shù)和吞吐量瓶頸之間存在一定的關(guān)聯(lián);
3.采用吞吐量測(cè)試可以更快速定位問(wèn)題.
1.3.3性能下降曲線分析法
性能下降曲線實(shí)際上描述的是性能隨用戶數(shù)增長(zhǎng)而出現(xiàn)下降趨勢(shì)的曲線.這里所說(shuō)的性能可以是響應(yīng)時(shí)間,也可以是吞吐量或者點(diǎn)擊數(shù)/秒的數(shù)據(jù).一般主要指響應(yīng)時(shí)間.
這種分析法主要關(guān)注性能下降曲線上的各個(gè)區(qū)間和響應(yīng)的拐點(diǎn),通過(guò)識(shí)別不同的區(qū)間和拐點(diǎn),從而為性能瓶頸識(shí)別和性能調(diào)優(yōu)提供依據(jù).
1.3.4LoadRunner的性能測(cè)試過(guò)程
計(jì)劃測(cè)試,測(cè)試設(shè)計(jì),創(chuàng)建VU腳本,創(chuàng)建測(cè)試場(chǎng)景,運(yùn)行測(cè)試場(chǎng)景和分析結(jié)果6個(gè)步驟.
1.3.5Segue提供的性能測(cè)試過(guò)程
從確定性能基線開(kāi)始,通過(guò)單用戶對(duì)應(yīng)用的訪問(wèn)獲取性能取值的基線,然后設(shè)定克接受的性能目標(biāo)(響應(yīng)時(shí)間),用不同的并發(fā)用戶數(shù)等重復(fù)進(jìn)行測(cè)試.適合性能調(diào)優(yōu)和性能優(yōu)化.
1.3.6本書(shū)提供的PTGM模型
過(guò)程分為測(cè)試前期準(zhǔn)備,測(cè)試工具引入,測(cè)試計(jì)劃,測(cè)試設(shè)計(jì)與開(kāi)發(fā),測(cè)試執(zhí)行和管理以及測(cè)試分析等6個(gè)步驟.