性能測(cè)試vs負(fù)載測(cè)試vs壓力測(cè)試
下面我們主要介紹性能測(cè)試、負(fù)載測(cè)試和壓力測(cè)試。
效率作為ISO 9126內(nèi)部和外部質(zhì)量的重要質(zhì)量屬性之一,其含義是在規(guī)定條件下,相對(duì)于所用的資源的數(shù)量,軟件產(chǎn)品可提供適當(dāng)性能的能力。資源可能包括其他軟件產(chǎn)品或系統(tǒng)的軟件和硬件配置,以及其他相關(guān)的資源(例如:打印紙、磁盤等)。
效率測(cè)試主要關(guān)注產(chǎn)品的時(shí)間和資源相關(guān)的特性。時(shí)間相關(guān)的特性是指在規(guī)定條件下,軟件產(chǎn)品執(zhí)行其功能時(shí),提供適當(dāng)?shù)捻憫?yīng)和處理時(shí)間以及吞吐量的能力,例如:用戶打開某個(gè)網(wǎng)頁需要等待的時(shí)間;資源相關(guān)的特性是指,在規(guī)定條件下,軟件產(chǎn)品執(zhí)行其功能時(shí),使用合適數(shù)量和類別的資源的能力,例如:用戶在進(jìn)行相關(guān)操作時(shí),系統(tǒng)的內(nèi)存和CPU的變化情況。
根據(jù)產(chǎn)品的時(shí)間特性和資源特性,效率測(cè)試可以包括不同的測(cè)試類型,例如:性能測(cè)試(Performance Test)、負(fù)載測(cè)試(Load Test)和壓力測(cè)試(Stress Test)。這三種效率測(cè)試類型,不僅在具體定義上面有不同的側(cè)重點(diǎn),同時(shí)相互之間又是密切關(guān)聯(lián)的。
1)性能測(cè)試
性能測(cè)試主要評(píng)價(jià)系統(tǒng)或組件的性能是否和具體的性能需求一致,例如:對(duì)訪問速度的性能需求或?qū)?nèi)存使用情況的需求。特定性能測(cè)試的關(guān)注點(diǎn)在于組件或系統(tǒng)在規(guī)定的時(shí)間內(nèi)和特定的條件下響應(yīng)用戶或系統(tǒng)輸入的能力。
不同的性能的度量方法取決于不同的被測(cè)對(duì)象。對(duì)于一個(gè)單獨(dú)軟件組件,其性能可以根據(jù)CPU主頻來判定。而帶客戶端的系統(tǒng),其性能則要根據(jù)系統(tǒng)處理特定用戶請(qǐng)求的響應(yīng)時(shí)間來判定。對(duì)于那些由多種組件(如客戶端、服務(wù)器、數(shù)據(jù)庫)構(gòu)成的系統(tǒng),則要進(jìn)行各組件之間的性能測(cè)試。
產(chǎn)品的性能對(duì)用戶是否會(huì)持續(xù)使用該產(chǎn)品影響很大。表1所示是一個(gè)用戶對(duì)訪問一個(gè)獨(dú)立頁面時(shí)等待不同時(shí)間的態(tài)度分布??梢钥吹?,當(dāng)頁面加載時(shí)間在10秒的時(shí)候,有84%的用戶愿意等待;但是當(dāng)頁面加載時(shí)間達(dá)到30秒的時(shí)候,只有5%的用戶愿意等待。
表1 用戶愿意等待時(shí)間分布
表1中的數(shù)據(jù)考慮了網(wǎng)絡(luò)的延遲。而如果在測(cè)試環(huán)境中,整個(gè)網(wǎng)絡(luò)是被測(cè)試系統(tǒng)所獨(dú)占的時(shí)候,對(duì)系統(tǒng)性能的要求要高的多。對(duì)于愿意等待的時(shí)間,每個(gè)用戶的承受范圍是不同,而且用戶對(duì)不同的應(yīng)用程序愿意接受的等待時(shí)間也是不一樣的。下面是一組關(guān)于響應(yīng)時(shí)間的性能需求描述:
- 對(duì)于多媒體交互系統(tǒng),在90%的時(shí)間內(nèi)系統(tǒng)響應(yīng)時(shí)間應(yīng)該不超過0.1秒;
- 對(duì)于每個(gè)用戶同時(shí)只有一項(xiàng)任務(wù)的在線系統(tǒng),在90%的時(shí)間內(nèi)系統(tǒng)響應(yīng)時(shí)間應(yīng)該不超過0.5秒;
- 對(duì)于每個(gè)用戶同時(shí)有多任務(wù)的在線系統(tǒng),在90%的時(shí)間內(nèi)系統(tǒng)響應(yīng)時(shí)間應(yīng)該不超過1秒。
性能測(cè)試關(guān)注的是系統(tǒng)性能是否和具體的性能需求相一致,而當(dāng)系統(tǒng)性能超過性能需求的時(shí)候,系統(tǒng)的表現(xiàn)并不是測(cè)試人員關(guān)心的重點(diǎn)。
例如:性能需求中要求系統(tǒng)應(yīng)該支持***同時(shí)在線用戶為5000個(gè),那么在性能測(cè)試過程中重點(diǎn)測(cè)試系統(tǒng)是否能支持5000個(gè)用戶同時(shí)在線;當(dāng)有5000個(gè)用戶同時(shí)在線后,性能測(cè)試需要關(guān)注整個(gè)系統(tǒng)的運(yùn)行是否符合要求;而對(duì)于在線用戶超過5000人的時(shí)候,系統(tǒng)的表現(xiàn)行為并不是性能測(cè)試需要關(guān)注的。
2)負(fù)載測(cè)試
負(fù)載測(cè)試是一種通過增加負(fù)載來評(píng)估組件或系統(tǒng)的性能的測(cè)試方法。例如:通過增加并發(fā)用戶數(shù)和(或)事務(wù)數(shù)量來測(cè)量組件或系統(tǒng)能夠承受的負(fù)載。負(fù)載測(cè)試和性能測(cè)試的主要區(qū)別在于負(fù)載測(cè)試時(shí),系統(tǒng)負(fù)載是逐漸增加的,而不是一步到位,負(fù)載測(cè)試需要觀察系統(tǒng)在各種不同的負(fù)載情況下是否都能夠正常工作。
下圖是某網(wǎng)站隨著用戶數(shù)量的增加,對(duì)應(yīng)的響應(yīng)時(shí)間也在增加的趨勢(shì)圖。具體趨勢(shì)如圖1所示。
圖1 某網(wǎng)站負(fù)載測(cè)試中用戶數(shù)量和響應(yīng)時(shí)間關(guān)系圖
通過觀察圖1,可以發(fā)現(xiàn)隨著用戶數(shù)目的增加,系統(tǒng)響應(yīng)時(shí)間也跟著增加。當(dāng)在線用戶數(shù)到700以后,系統(tǒng)響應(yīng)時(shí)間增速明顯加快。當(dāng)然響應(yīng)時(shí)間只是需要觀察的數(shù)據(jù)之一,隨著測(cè)試負(fù)載的增加還需要觀察系統(tǒng)資源等占有情況。
3)壓力測(cè)試
壓力測(cè)試是評(píng)估系統(tǒng)處于或超過預(yù)期負(fù)載時(shí)系統(tǒng)的運(yùn)行情況。壓力測(cè)試的關(guān)注點(diǎn)在于系統(tǒng)在峰值負(fù)載或超出***載荷情況下的處理能力。在壓力級(jí)別逐漸增加時(shí),系統(tǒng)性能應(yīng)該按照預(yù)期緩慢下降,但是不應(yīng)該崩潰。壓力測(cè)試還可以發(fā)現(xiàn)系統(tǒng)崩潰的臨界點(diǎn),從而發(fā)現(xiàn)系統(tǒng)中的薄弱環(huán)節(jié)。
例如:系統(tǒng)***支持的同時(shí)在線用戶數(shù)是1000個(gè),壓力測(cè)試需要測(cè)試在1000個(gè)用戶甚至2000個(gè)用戶同時(shí)在線時(shí)系統(tǒng)的表現(xiàn)。雖然測(cè)試時(shí)負(fù)載已經(jīng)超過了系統(tǒng)的設(shè)計(jì)能力,但是在這種情況下被測(cè)試系統(tǒng)也不應(yīng)該發(fā)生崩潰。壓力測(cè)試也可以針對(duì)系統(tǒng)資源進(jìn)行測(cè)試,例如:在系統(tǒng)內(nèi)存耗盡情況下,測(cè)試系統(tǒng)的運(yùn)行情況,這種情況下被測(cè)試系統(tǒng)也不應(yīng)該崩潰。
前面分別介紹了性能測(cè)試、負(fù)載測(cè)試和壓力測(cè)試三種效率測(cè)試類型。目前在軟件測(cè)試領(lǐng)域,對(duì)這三種測(cè)試類型的定義并不統(tǒng)一。在實(shí)際的測(cè)試工作中,性能測(cè)試這個(gè)詞被廣泛的使用。在很多場(chǎng)合,性能測(cè)試是上述三種測(cè)試類型的通稱;在有的書籍或者參考資料中,性能測(cè)試的范圍甚至更加廣泛。
【編輯推薦】