軟件測(cè)試:C/S結(jié)構(gòu)的應(yīng)用程序的性能測(cè)試

字號(hào):

雖然B/S結(jié)構(gòu)愈來愈成為流行模式,但基于C/S結(jié)構(gòu)的應(yīng)用程序還廣泛地應(yīng)用于各種行業(yè)。對(duì)于某些應(yīng)用軟件,其承受大用戶量并發(fā)訪問的能力常常是應(yīng)用者重點(diǎn)考慮的一個(gè)方面。的方法是用測(cè)試工具來模擬多個(gè)客戶端同時(shí)訪問服務(wù)器,并使用性能監(jiān)測(cè)工具獲得關(guān)于服務(wù)器、數(shù)據(jù)庫等用戶關(guān)心的性能指標(biāo)。中國軟件評(píng)測(cè)中心在多年的測(cè)試歷程中,使用過多種性能測(cè)試工具,而對(duì)于C/S結(jié)構(gòu)的應(yīng)用程序,也總結(jié)了不少性能測(cè)試經(jīng)驗(yàn)和方法。下面以中國軟件評(píng)測(cè)中心經(jīng)常用到的一種壓力測(cè)試工具 QALoad為例,說明這類性能測(cè)試需要注意的地方。
    1、首先分析壓力測(cè)試中最容易出現(xiàn)瓶頸的地方,從而有目的地調(diào)整測(cè)試策略或測(cè)試環(huán)境,使壓力測(cè)試結(jié)果真實(shí)地反映出軟件的性能。例如,服務(wù)器的硬件限制、數(shù)據(jù)庫的訪問性能設(shè)置等常常會(huì)成為制約軟件性能的重要因素,但這些因素顯然不是用戶最關(guān)心的,我們?cè)跍y(cè)試之前就要通過一些設(shè)置把這些因素的影響調(diào)至最低。
    2、測(cè)試腳本至關(guān)重要。對(duì)于某些應(yīng)用,如ADO、ODBC等等,QALoad可以錄制/回放腳本,這給測(cè)試工作帶來極大的便利,但用這樣采集來的腳本直接作為壓力測(cè)試的腳本往往會(huì)導(dǎo)致錯(cuò)誤的結(jié)果。我們需要對(duì)原始的腳本進(jìn)行修改,根據(jù)應(yīng)用程序的實(shí)際情況和用戶可能的操作情況調(diào)整腳本的結(jié)構(gòu),從而使腳本更符合實(shí)際情況。比如,我們錄制一個(gè)用戶登錄、操作和注銷的過程,實(shí)際情況是多數(shù)用戶只登錄一次,然后進(jìn)行多次操作,這時(shí)我們只需在腳本中把登錄和注銷部分轉(zhuǎn)至循環(huán)(即腳本中的Transaction部分)外即可。
    3、選用不同的加載策略可以反映不同狀況下的性能。QALoad可采用的策略有:
    (1)并發(fā)用戶數(shù)和每個(gè)模擬用戶運(yùn)行的事務(wù)數(shù)都為固定值;
    (2)并發(fā)用戶按固定的時(shí)間間隔遞增,每個(gè)模擬用戶數(shù)運(yùn)行的事務(wù)數(shù)不限;
    (3)以類似于批處理的方式順序運(yùn)行不同并發(fā)數(shù)的模擬用戶,每個(gè)模擬用戶運(yùn)行的事務(wù)數(shù) 固定;
    (4)并發(fā)用戶數(shù)固定,運(yùn)行事務(wù)數(shù)不限,在一定的時(shí)間范圍內(nèi)持續(xù)運(yùn)行腳本,然后手動(dòng)停止;
    (5)不同模擬用戶運(yùn)行不同的腳本,模擬真實(shí)的訪問情況。 另外,QALoad還提供設(shè)置數(shù)據(jù)變量和數(shù)據(jù)池,設(shè)置操作之間的間歇時(shí)間等功能,我們?cè)谶\(yùn)行腳本時(shí)可以充分利用這些策略和功能。
    4、尋求多種性能指標(biāo)的獲取方法。由QALoad本身提供的性能指標(biāo)是每個(gè)“檢查點(diǎn)”的響應(yīng)時(shí)間,這些響應(yīng)時(shí)間可以通過統(tǒng)計(jì)分析以獲得更直觀的結(jié)果,如平均響應(yīng)時(shí)間、響應(yīng)時(shí)間方差等等,但這些遠(yuǎn)遠(yuǎn)不能滿足我們壓力測(cè)試的需要。對(duì)于基于Windows系列平臺(tái)的應(yīng)用,QALoad可以添加Windows服務(wù)捕獲的性能指標(biāo),前提是在服務(wù)器上安裝QALoad的Agent組件并啟動(dòng)服務(wù)器上的SNMP等服務(wù)。對(duì)于如UNIX的其他平臺(tái),我們可以借助專用性能監(jiān)測(cè)工具,如MAX、 ECOTool,以獲取更有價(jià)值的性能數(shù)據(jù)。
    大多數(shù)性能測(cè)試,特別是基于C/S結(jié)構(gòu)的應(yīng)用軟件的性能測(cè)試只有借助于測(cè)試工具才能完 成,另一方面,也需要測(cè)試工程師靈活的運(yùn)用才能讓測(cè)試工具充分發(fā)揮作用。