《軟件測(cè)試技術(shù)》課件第11章_第1頁(yè)
《軟件測(cè)試技術(shù)》課件第11章_第2頁(yè)
《軟件測(cè)試技術(shù)》課件第11章_第3頁(yè)
《軟件測(cè)試技術(shù)》課件第11章_第4頁(yè)
《軟件測(cè)試技術(shù)》課件第11章_第5頁(yè)
已閱讀5頁(yè),還剩174頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第11章Web系統(tǒng)測(cè)試案例11.1博客系統(tǒng)概述11.2博客系統(tǒng)測(cè)試計(jì)劃11.3博客系統(tǒng)功能測(cè)試11.4博客系統(tǒng)性能測(cè)試11.5其他非功能性測(cè)試11.6本章小結(jié)

11.1博客系統(tǒng)概述

1.系統(tǒng)功能

本案例要測(cè)試的是一個(gè)功能強(qiáng)大的博客系統(tǒng),該系統(tǒng)從http://網(wǎng)站下載,版本為L(zhǎng)xBlog6.0。系統(tǒng)主頁(yè)如圖11-1-1所示。該系統(tǒng)包括下列功能模塊:

(1)個(gè)人日志:撰寫(xiě)和發(fā)表日志。

(2)個(gè)人相冊(cè)系統(tǒng):支持多相冊(cè)功能,可將相片分類(lèi)收藏,方便查詢和瀏覽,支持相片上傳和使用URL地址兩種方式保存相片。

(3)用戶模板:提供用戶風(fēng)格定制功能,打造個(gè)性。用戶可以通過(guò)簡(jiǎn)單的后臺(tái)操作制作出多種多樣的風(fēng)格,新的風(fēng)格定制功能為每個(gè)模塊提供了背景顏色,背景圖片,字體顏色,字體大小,邊框樣式等屬性設(shè)置。

(4)文章推送:管理自己的發(fā)表的文章,可以將優(yōu)秀的文章加入到自己的博客主頁(yè)中,永久收藏,也可以在瀏覽主題的時(shí)候選擇將主題推送到自己的博客主頁(yè)中。

(5)搜索功能:強(qiáng)大的搜索功能,可快速地尋找要查看的博客和文章。圖11-1-1博客系統(tǒng)主頁(yè)面

2.系統(tǒng)體系結(jié)構(gòu)

博客系統(tǒng)為典型的B/S結(jié)構(gòu),客戶端都是通過(guò)瀏覽器訪問(wèn)應(yīng)用系統(tǒng)。Web服務(wù)器為Apache,數(shù)據(jù)庫(kù)為MySQL。瀏覽器和Web服務(wù)器之間的交互基于HTTP協(xié)議。HTTP協(xié)議本身是無(wú)連接的,Web服務(wù)器通過(guò)Session機(jī)制來(lái)建立一個(gè)瀏覽器所發(fā)出的先后連接之間的關(guān)聯(lián)。

博客系統(tǒng)體系結(jié)構(gòu)如圖11-1-2所示。圖11-1-2博客系統(tǒng)體系結(jié)構(gòu)用戶在使用系統(tǒng)時(shí),請(qǐng)求之后的事務(wù)邏輯處理和數(shù)據(jù)的邏輯運(yùn)算由服務(wù)器與數(shù)據(jù)庫(kù)系統(tǒng)共同完成,對(duì)用戶而言是完全透明的,運(yùn)算后得到的結(jié)果再通過(guò)瀏覽器的方式返回給用戶。

3.開(kāi)發(fā)環(huán)境

本博客系統(tǒng)開(kāi)發(fā)的軟件環(huán)境如下:

(1)操作系統(tǒng):WindowsXP(SP2)。

(2)?Web服務(wù):Apache。

(3)數(shù)據(jù)庫(kù):MYSQL。

(4)開(kāi)發(fā)語(yǔ)言和工具:PHP+Zend+PHPWIND。

(5)瀏覽器:IE6.0。

本軟件系統(tǒng)用作學(xué)校教師的博客網(wǎng)站,以方便教師和學(xué)生的交流溝通。其中教師人數(shù)約為1000人,學(xué)生約4000人。下面將該系統(tǒng)作為測(cè)試案例,簡(jiǎn)述如何對(duì)Web應(yīng)用系統(tǒng)進(jìn)行測(cè)試。

11.2博客系統(tǒng)測(cè)試計(jì)劃

11.2.1測(cè)試需求

本博客系統(tǒng)屬于一般類(lèi)型的應(yīng)用軟件,用戶要求各功能使用正常,系統(tǒng)響應(yīng)比較快,運(yùn)行穩(wěn)定,能滿足5000人正常使用。博客系統(tǒng)的用戶有兩類(lèi):一類(lèi)是教師,是注冊(cè)用戶,可以建立個(gè)人主頁(yè)(能夠發(fā)表日志、上傳照片、管理音樂(lè)等);另一類(lèi)是學(xué)生,是非注冊(cè)用戶(游客),只能瀏覽教師主頁(yè)、下載資料、播放音樂(lè)、留言等。

本次測(cè)試的目的就是檢查核心模塊功能是否正常,驗(yàn)證系統(tǒng)性能是否滿足應(yīng)用需求。本次測(cè)試的具體內(nèi)容如下。

1.功能測(cè)試

在功能測(cè)試中,需重點(diǎn)測(cè)試登錄模塊、發(fā)表日志模塊和相冊(cè)模塊。另外需要進(jìn)行鏈接測(cè)試,檢查各鏈接是否正常。

2.性能測(cè)試

在性能測(cè)試中,需要測(cè)試不同負(fù)載下系統(tǒng)的表現(xiàn),并獲得系統(tǒng)的響應(yīng)能力、負(fù)載能力、吞吐率和資源利用率等性能指標(biāo)。

3.其他測(cè)試

(1)用戶界面測(cè)試。

(2)兼容性測(cè)試。

(3)安全性測(cè)試。11.2.2測(cè)試資源

在測(cè)試之前,我們需要做一系列準(zhǔn)備工作。首先就是測(cè)試資源的準(zhǔn)備,包括測(cè)試人員、測(cè)試的軟硬件環(huán)境和測(cè)試工具,以及測(cè)試過(guò)程中需要用到的各類(lèi)文檔資料。

2.測(cè)試環(huán)境

(1)硬件設(shè)備:2臺(tái)服務(wù)器(聯(lián)想R3500-G5),10臺(tái)PC機(jī)。

(2)軟件環(huán)境。

操作系統(tǒng):WindowsXP(SP3);

Web服務(wù)器:Apache;

數(shù)據(jù)庫(kù):MYSQL;

相關(guān)軟件:PHP、Zend、PHPWind、MicrosoftOffice、IE6.0。

(3)網(wǎng)絡(luò)環(huán)境:學(xué)校內(nèi)部的以太網(wǎng),與服務(wù)器的連接速率為100M,與客戶端的連接速率為10/100M自適應(yīng)。

3.測(cè)試工具

測(cè)試工具見(jiàn)表11-2-2。

4.文檔資料

可提供軟件開(kāi)發(fā)過(guò)程中的各類(lèi)文檔,如“需求規(guī)格說(shuō)明書(shū)”、“概要設(shè)計(jì)說(shuō)明書(shū)”、“詳細(xì)設(shè)計(jì)說(shuō)明書(shū)”、“數(shù)據(jù)字典”等。11.2.3測(cè)試策略

1.功能測(cè)試

功能測(cè)試的目的是確保系統(tǒng)的功能正常,如導(dǎo)航、數(shù)據(jù)輸入、處理是否正確,以及業(yè)務(wù)規(guī)則的實(shí)施是否恰當(dāng)。對(duì)交互的輸出或結(jié)果進(jìn)行分析,以核實(shí)應(yīng)用程序的功能。

本次功能測(cè)試的重點(diǎn)是:登錄模塊、發(fā)表日志模塊和相冊(cè)模塊,測(cè)試策略定義見(jiàn)表11-2-3~表11-2-6。在功能測(cè)試中,設(shè)計(jì)測(cè)試用例要注意以下幾點(diǎn):

(1)測(cè)試項(xiàng)目的輸入域要全面。要有合法數(shù)據(jù)的輸入,也要有非法數(shù)據(jù)的輸入。

(2)劃分等價(jià)類(lèi),提高測(cè)試效率。在考慮測(cè)試域全面性的基礎(chǔ)上,要?jiǎng)澐值葍r(jià)類(lèi),選擇少數(shù)有代表意義的用例進(jìn)行測(cè)試,提高測(cè)試效率。

(3)要適時(shí)利用邊界值進(jìn)行測(cè)試,并選取一些特殊值作為補(bǔ)充。

(4)重復(fù)遞交相同的事務(wù)。

(5)不按照常規(guī)的順序執(zhí)行功能操作(即隨機(jī)測(cè)試或者探索性測(cè)試)。

(6)執(zhí)行正常操作,觀察輸出結(jié)果是否異常。

2.性能測(cè)試

性能測(cè)試主要是對(duì)響應(yīng)時(shí)間、事務(wù)處理速率和其他與時(shí)間相關(guān)的需求進(jìn)行評(píng)測(cè)和評(píng)估,核實(shí)系統(tǒng)性能需求是否都已滿足。

性能測(cè)試的內(nèi)容很多,本次性能測(cè)試中,重點(diǎn)進(jìn)行用戶并發(fā)性能測(cè)試。

對(duì)核心功能模塊進(jìn)行并發(fā)用戶測(cè)試,可以知道數(shù)據(jù)庫(kù)服務(wù)、操作系統(tǒng)、網(wǎng)絡(luò)設(shè)備等是否能夠承受住考驗(yàn),同時(shí)可以對(duì)瓶頸進(jìn)行分析。

本次進(jìn)行用戶并發(fā)測(cè)試的模塊有登錄模塊、發(fā)表日志模塊和相冊(cè)模塊。測(cè)試策略見(jiàn)表11-2-7~表11-2-10。

(1)平均虛擬用戶數(shù)為其中,Aver(Vu):平均虛擬用戶數(shù);

n:LoginSession的數(shù)量,可以估算每天登錄到這個(gè)網(wǎng)站上的用戶,一般是指登錄注冊(cè)的用戶數(shù)量;

L:LoginSession的平均長(zhǎng)度,登錄的用戶一般在這個(gè)網(wǎng)站上停留的時(shí)間;

T:考察的時(shí)間段長(zhǎng)度,比如對(duì)于博客網(wǎng)站的考察時(shí)間可以認(rèn)為是8小時(shí)或者24小時(shí)等。

(2)最大虛擬用戶數(shù)為但是對(duì)于web測(cè)試,一般可以根據(jù)下面的經(jīng)驗(yàn)公式進(jìn)行計(jì)算:其中,r:系數(shù),一般為2或3。

3.用戶界面測(cè)試

用戶界面測(cè)試用于核實(shí)用戶與軟件之間的交互是否正常。本次界面測(cè)試中,需核實(shí)下列內(nèi)容:

(1)確保各種瀏覽以及各種訪問(wèn)方法(鼠標(biāo)移動(dòng)、快捷鍵等)都使用正常。

(2)確保窗口對(duì)象及其特征(菜單、大小、位置、狀態(tài)和中心)都符合標(biāo)準(zhǔn)。

用戶界面測(cè)試的檢查項(xiàng)可參考表11-2-11。

4.安全性測(cè)試

安全性測(cè)試是通過(guò)非法登錄、漏洞掃描、模擬攻擊等方式檢測(cè)系統(tǒng)的認(rèn)證機(jī)制、加密機(jī)制、防病毒功能等安全防護(hù)策略的健壯性。

5.兼容性測(cè)試

通過(guò)硬件兼容性測(cè)試、軟件兼容性測(cè)試和數(shù)據(jù)兼容性測(cè)試來(lái)考察軟件的跨平臺(tái)、可移植的特性。本例中我們只進(jìn)行了操作系統(tǒng)和瀏覽器的兼容性測(cè)試。11.2.4測(cè)試標(biāo)準(zhǔn)

在做測(cè)試之前,需要先制定出各項(xiàng)測(cè)試標(biāo)準(zhǔn)。對(duì)不同的軟件項(xiàng)目,測(cè)試的側(cè)重點(diǎn)不同,關(guān)注的性能指標(biāo)也不同,因此其測(cè)試標(biāo)準(zhǔn)也不同。

1.測(cè)試特性

功能性(權(quán)重40%)、效率(權(quán)重25%)、可靠性(權(quán)重25%)、可移植性(權(quán)重5%)、可維護(hù)性(權(quán)重5%)。

2.輸出準(zhǔn)則

(1)文檔:系統(tǒng)測(cè)試說(shuō)明、系統(tǒng)測(cè)試報(bào)告。

(2)覆蓋率:已計(jì)劃測(cè)試覆蓋率100%,已執(zhí)行測(cè)試覆蓋率98%。

(3)功能質(zhì)量目標(biāo):缺陷遺留數(shù):嚴(yán)重缺陷0個(gè),較嚴(yán)重缺陷5個(gè),一般缺陷15個(gè),次要缺陷20個(gè)。

(4)性能質(zhì)量目標(biāo)。

①單個(gè)事務(wù)或單個(gè)用戶:在每個(gè)事務(wù)所預(yù)期或要求的時(shí)間范圍內(nèi)成功地完成測(cè)試腳本,沒(méi)有發(fā)生任何故障。響應(yīng)時(shí)間不超過(guò)8s。

②多個(gè)事務(wù)或多個(gè)用戶:在可接受的時(shí)間范圍內(nèi)成功地完成測(cè)試腳本,沒(méi)有發(fā)生任何故障。10個(gè)用戶時(shí),90%的事務(wù)平均響應(yīng)時(shí)間不超過(guò)5s,每一事務(wù)的響應(yīng)時(shí)間不超過(guò)10s;50個(gè)用戶時(shí),90%的事務(wù)平均響應(yīng)時(shí)間不超過(guò)8s,每一事務(wù)的響應(yīng)時(shí)間不超過(guò)10s;100個(gè)并發(fā)用戶時(shí),90%的事務(wù)平均響應(yīng)時(shí)間不超過(guò)10s,每一事務(wù)的響應(yīng)時(shí)間不超過(guò)15s。

3.缺陷嚴(yán)重級(jí)別定義

嚴(yán)重缺陷:不能執(zhí)行正常工作功能或重要功能,使系統(tǒng)崩潰或資源嚴(yán)重不足。例如由于程序所引起的死機(jī)、非法退出、死循環(huán)、數(shù)據(jù)庫(kù)發(fā)生死鎖、錯(cuò)誤操作導(dǎo)致的程序中斷、嚴(yán)重的計(jì)算錯(cuò)誤、與數(shù)據(jù)庫(kù)連接錯(cuò)誤、數(shù)據(jù)通訊錯(cuò)誤等。

較嚴(yán)重缺陷:嚴(yán)重地影響系統(tǒng)要求或基本功能的實(shí)現(xiàn),且沒(méi)有辦法更正。例如功能與需求不符、程序接口錯(cuò)誤、數(shù)據(jù)流錯(cuò)誤、輕微數(shù)據(jù)計(jì)算錯(cuò)誤等。

一般缺陷:嚴(yán)重地影響系統(tǒng)要求或基本功能的實(shí)現(xiàn),但存在合理的更正辦法。例如界面錯(cuò)誤,打印內(nèi)容、格式錯(cuò)誤,刪除操作未給出提示,數(shù)據(jù)輸入沒(méi)有邊界值限定或不合理等。次要缺陷:使操作者不方便或遇到麻煩,但不影響執(zhí)行工作或功能實(shí)現(xiàn)。例如輔助說(shuō)明描述不清楚、顯示格式不規(guī)范、系統(tǒng)處理未優(yōu)化、長(zhǎng)時(shí)間操作未給用戶進(jìn)度提示、提示窗口文字未采用行業(yè)術(shù)語(yǔ)等。

改進(jìn)型缺陷:對(duì)系統(tǒng)使用的友好性有影響。例如:名詞拼寫(xiě)錯(cuò)誤、界面布局或色彩問(wèn)題、文檔的可讀性、一致性等。

4.系統(tǒng)響應(yīng)時(shí)間判斷原則(2-5-10原則)

(1)系統(tǒng)業(yè)務(wù)響應(yīng)時(shí)間小于2s,判為優(yōu)秀,用戶對(duì)系統(tǒng)感覺(jué)很好。

(2)系統(tǒng)業(yè)務(wù)響應(yīng)時(shí)間在2~5s之間,判為良好,用戶對(duì)系統(tǒng)感覺(jué)一般。

(3)系統(tǒng)業(yè)務(wù)響應(yīng)時(shí)間在5~10s之間,判為及格,用戶對(duì)系統(tǒng)勉強(qiáng)接受。

(4)系統(tǒng)業(yè)務(wù)響應(yīng)時(shí)間超過(guò)10s,判斷為不及格,用戶無(wú)法接受系統(tǒng)的響應(yīng)速度。

11.3博客系統(tǒng)功能測(cè)試

在本案例中的功能測(cè)試部分,重點(diǎn)介紹登錄模塊、發(fā)表日志和相冊(cè)的功能測(cè)試和系統(tǒng)的鏈接測(cè)試。

10.3.1登錄個(gè)人主頁(yè)的測(cè)試

登錄模塊的界面如圖11-3-1所示。另外,網(wǎng)站中還有一個(gè)單獨(dú)的登錄頁(yè)面,其測(cè)試方法與當(dāng)前這個(gè)登錄模塊的測(cè)試方法基本一樣。下面對(duì)主頁(yè)面上的登錄模塊進(jìn)行功能測(cè)試。圖11-3-1登錄界面

1.測(cè)試用例設(shè)計(jì)

根據(jù)登錄操作的特點(diǎn),采用等價(jià)類(lèi)和邊界值方法設(shè)計(jì)測(cè)試用例。登錄個(gè)人主頁(yè)的測(cè)試用例如表11-3-1所示。

2.準(zhǔn)備測(cè)試腳本

在本測(cè)試中,使用QuickTest進(jìn)行測(cè)試。有關(guān)QuickTest的使用方法請(qǐng)參考QuickTest使用指南和在線幫助。在錄制之前我們需要解決頁(yè)面中的驗(yàn)證碼給“錄制-回放”帶來(lái)的問(wèn)題。在此我們采用“后門(mén)法”,在代碼中設(shè)定一個(gè)所謂的“萬(wàn)能驗(yàn)證碼”。本例中萬(wàn)能驗(yàn)證碼的值為1234。

1)錄制測(cè)試腳本

啟用QuickTest工具,在URL地址欄輸入博客網(wǎng)站的地址,點(diǎn)擊“Record”按鈕,開(kāi)始錄制。錄制時(shí)生成的腳本如下:

Browser("LxBlog-poweredby").Page("LxBlog-poweredby").WebEdit("pwtypev").Set"wang"

Browser("LxBlog-poweredby").Page("LxBlog-poweredby").WebEdit("pwpwd").SetSecure"48829ccf8ebcdcbfd69f4a7146998047c41c"

Browser("LxBlog-poweredby").Page("LxBlog-poweredby").WebEdit("gdcode").Set"1234"

Browser("LxBlog-poweredby").Page("LxBlog-poweredby").WebButton("登錄").Click

Browser("LxBlog-poweredby").Page("LxBlog-poweredby_2").Link("注銷(xiāo)").Click圖11-3-2關(guān)鍵字方式的測(cè)試腳本

2)增強(qiáng)腳本

錄制好測(cè)試腳本后,需要增強(qiáng)腳本。

對(duì)于登錄模塊中的用戶名文本框和密碼文本框,使用參數(shù)化方式將前面測(cè)試用例的數(shù)據(jù)導(dǎo)入腳本中。另外,對(duì)該頁(yè)面的測(cè)試還要插入文本檢查點(diǎn)和圖像檢查點(diǎn)。為了使測(cè)試腳本簡(jiǎn)潔,提高測(cè)試效率,我們將對(duì)用戶名文本框和密碼文本框的檢查作為一個(gè)測(cè)試腳本,將對(duì)頁(yè)面上的文本和圖像的檢查作為另一個(gè)腳本。

用戶名文本框和密碼文本框參數(shù)化界面如圖11-3-3所示。增強(qiáng)后的測(cè)試腳本文件名為login_parameter。圖11-3-3登錄模塊參數(shù)化腳本自動(dòng)化測(cè)試中驗(yàn)證碼的解決方案

目前,不少網(wǎng)站在用戶登錄、用戶提交信息等登錄和輸入的頁(yè)面上使用了驗(yàn)證碼技術(shù)。驗(yàn)證碼技術(shù)可以有效防止惡意用戶對(duì)網(wǎng)站的濫用,使得網(wǎng)站可以有效避免用戶信息失竊等問(wèn)題。但與此同時(shí),驗(yàn)證碼技術(shù)的使用卻使得Web自動(dòng)化測(cè)試面臨了較大的困難。驗(yàn)證碼具有隨機(jī)性和不易被自動(dòng)工具識(shí)別的特點(diǎn),當(dāng)用戶訪問(wèn)某個(gè)使用驗(yàn)證碼的頁(yè)面時(shí),每次對(duì)該相同頁(yè)面的訪問(wèn)都會(huì)得到一個(gè)隨機(jī)產(chǎn)生的不同的驗(yàn)證碼,并且,這些驗(yàn)證碼具有能夠被人工識(shí)別,但很難被自動(dòng)工具識(shí)別的特點(diǎn),這樣,自動(dòng)工具就很難適應(yīng)使用驗(yàn)證碼的頁(yè)面。由于驗(yàn)證碼的存在,傳統(tǒng)的“錄制-回放”工具由于不能識(shí)別驗(yàn)證碼而失效。從技術(shù)的角度來(lái)看,下面兩種方法可實(shí)現(xiàn)自動(dòng)測(cè)試工具對(duì)驗(yàn)證碼的處理。

(1)識(shí)別法。識(shí)別法完全從客戶端角度考慮,靠模式識(shí)別的方法識(shí)別出驗(yàn)證碼圖片對(duì)應(yīng)的字符串。該方法適用于不能獲得和改變服務(wù)器端代碼的情況,測(cè)試者只能完全從客戶端的角度想辦法解決驗(yàn)證碼的問(wèn)題。識(shí)別法的核心是對(duì)驗(yàn)證碼圖片的模式識(shí)別算法,該算法的可實(shí)現(xiàn)性基本取決于圖片本身的復(fù)雜程度。

(2)插入法。插入法是從服務(wù)端考慮,如果自動(dòng)測(cè)試工具可以獲取Session中存儲(chǔ)的隨機(jī)數(shù),也就能正確處理驗(yàn)證碼了。

如果可以控制和修改服務(wù)端代碼,就可以使用服務(wù)端插入法。該方法在服務(wù)端提供一個(gè)可被客戶端使用的接口,只要客戶端傳遞過(guò)來(lái)自己的SessionID,該接口就返回此時(shí)正確的Session,這種方法就可以很容易地讓自動(dòng)化測(cè)試工具直接獲取到應(yīng)該提交的驗(yàn)證碼內(nèi)容。從測(cè)試的角度來(lái)說(shuō),這種方法就等于是在系統(tǒng)上增加了一個(gè)測(cè)試接口,從而提高了系統(tǒng)的可測(cè)試性。

另外,通過(guò)非技術(shù)的方式也能讓自動(dòng)化測(cè)試在具有驗(yàn)證碼的系統(tǒng)上成功應(yīng)用。下面介紹兩種常用方法。

(1)屏蔽法。屏蔽法的核心是在被測(cè)系統(tǒng)中暫時(shí)屏蔽驗(yàn)證功能。這種方法最容易實(shí)現(xiàn),對(duì)測(cè)試結(jié)果也不會(huì)有太大的影響。當(dāng)然,這種方式去掉了“驗(yàn)證驗(yàn)證碼”這個(gè)環(huán)節(jié),如果該環(huán)節(jié)本身存在功能上的問(wèn)題,或是本身就是性能的瓶頸,那就一定會(huì)對(duì)測(cè)試結(jié)果造成影響。這種方法也有一個(gè)問(wèn)題:如果被測(cè)系統(tǒng)是一個(gè)實(shí)際已上線的系統(tǒng),屏蔽驗(yàn)證功能會(huì)對(duì)已經(jīng)在運(yùn)行的業(yè)務(wù)造成非常大的安全性的風(fēng)險(xiǎn)。因此,對(duì)于已上線的系統(tǒng)來(lái)說(shuō),用這種方式就不合適了。

(2)后門(mén)法。后門(mén)法不屏蔽驗(yàn)證碼,但在其中留一個(gè)后門(mén),在代碼中設(shè)定一個(gè)所謂的“萬(wàn)能驗(yàn)證碼”,只要用戶輸入這個(gè)“萬(wàn)能驗(yàn)證碼”就能通過(guò)驗(yàn)證,否則,還是按照正常的驗(yàn)證方式進(jìn)行驗(yàn)證。這種方式仍然存在安全性的問(wèn)題,但我們可以通過(guò)管理手段將“萬(wàn)能驗(yàn)證碼”控制在一個(gè)小的范圍內(nèi),而且只在測(cè)試期間保留這個(gè)小小的后門(mén),相對(duì)第一種方法來(lái)說(shuō),在安全性方面有了較大的提高。

3.執(zhí)行測(cè)試

分別運(yùn)行各測(cè)試腳本,獲得測(cè)試結(jié)果。

進(jìn)行參數(shù)化后,運(yùn)行腳本的次數(shù)由用戶名和密碼數(shù)據(jù)對(duì)的個(gè)數(shù)決定,每執(zhí)行一次,QuickTest就會(huì)在數(shù)據(jù)表中讀入對(duì)應(yīng)的一組數(shù)據(jù)。在login_parameter腳本中,設(shè)計(jì)了18組測(cè)試數(shù)據(jù),在執(zhí)行l(wèi)ogin_parameter腳本時(shí),就運(yùn)行了18次。運(yùn)行結(jié)束后,QuickTest將彈出測(cè)試執(zhí)行結(jié)果頁(yè)面,顯示每次運(yùn)行的測(cè)試結(jié)果。由于用戶名和密碼有些是不正確的,因此不能正常登錄。對(duì)于不能正常登錄的情況,系統(tǒng)都將彈出提示頁(yè)面,QuickTest在迭代(多次)執(zhí)行過(guò)程中,將自動(dòng)關(guān)閉彈出的提示頁(yè)面。通過(guò)自動(dòng)化測(cè)試,不難看出自動(dòng)化測(cè)試的好處:提高執(zhí)行效率,并可避免人工進(jìn)行繁瑣數(shù)據(jù)輸入操作,而且可以避免人為的一些錯(cuò)誤。

除了通過(guò)運(yùn)行自動(dòng)化測(cè)試腳本進(jìn)行測(cè)試以外,我們還補(bǔ)充了一些必要的手動(dòng)測(cè)試。手動(dòng)測(cè)試就是直接按照測(cè)試用例的要求,輸入測(cè)試數(shù)據(jù),觀察運(yùn)行的結(jié)果與預(yù)期結(jié)果的異同,以判斷測(cè)試是否通過(guò)。在這里主要使用特殊值測(cè)試或錯(cuò)誤推測(cè)法設(shè)計(jì)測(cè)試用例,并執(zhí)行測(cè)試,使測(cè)試更完善。

4.測(cè)試結(jié)果

通過(guò)手動(dòng)測(cè)試和自動(dòng)化測(cè)試,發(fā)現(xiàn)四個(gè)輕微的缺陷,分別是:

(1)用戶名未區(qū)分大小寫(xiě)。

(2)用戶名為空,單擊登錄按鈕,提示信息不正確/不恰當(dāng)。

(3)用戶名錯(cuò)誤,重新返回登錄頁(yè)面時(shí),用戶名輸入框未清空。

(4)用戶名和密碼錯(cuò)誤,重新返回登錄頁(yè)面時(shí),用戶名輸入框未清空。11.3.2發(fā)表日志模塊的測(cè)試

發(fā)表日志的頁(yè)面如圖11-3-4所示。在該頁(yè)面中包括文本輸入框、單選按鈕、復(fù)選框、下拉列表框、文本編輯工具、認(rèn)證碼和提交按鈕等。圖11-3-4發(fā)表日志界面

1.測(cè)試用例設(shè)計(jì)

根據(jù)頁(yè)面中各組件的特點(diǎn),選擇合適的測(cè)試方法和測(cè)試策略,分別設(shè)計(jì)測(cè)試用例。

1)文本框

對(duì)文本框進(jìn)行測(cè)試,可以從下面幾個(gè)方面進(jìn)行考慮:

(1)文本框是否對(duì)輸入的字符數(shù)有特別限定,若與特別限定條件不符,是否會(huì)給出提示。

(2)文本框是否可以為數(shù)字、漢字、英文字符和特殊字符,中間是否可以有空格,標(biāo)點(diǎn)符號(hào)等。

(3)文本框中是否能正常使用功能鍵和快捷鍵。

2)單選按鈕

為單選按鈕設(shè)計(jì)測(cè)試用例可以從下列幾方面考慮:

(1)逐一執(zhí)行每個(gè)單選按鈕的功能。

(2)一組單選按鈕不能同時(shí)選中,只能選中一個(gè)。

(3)一組執(zhí)行同一功能的單選按鈕在初始狀態(tài)時(shí)必須有一個(gè)被默認(rèn)選中,不能同時(shí)為空。

(4)單選按鈕上功能鍵和快捷鍵是否正常。

心情單選按鈕如圖11-3-5所示。為其設(shè)計(jì)測(cè)試用例,見(jiàn)表11-3-3。圖11-3-5心情單選按鈕

3)復(fù)選框

對(duì)復(fù)選框的測(cè)試可以從下列幾方面進(jìn)行考慮:

(1)多個(gè)復(fù)選框可以被同時(shí)選中。

(2)多個(gè)復(fù)選框可以被部分選中。

(3)多個(gè)復(fù)選框可以都不被選中。

(4)逐一執(zhí)行每個(gè)復(fù)選框的功能。

下面對(duì)發(fā)表日志頁(yè)面中的復(fù)選框設(shè)計(jì)測(cè)試用例,見(jiàn)表11-3-4。

4)列表框

列表框控件的測(cè)試可以考慮下列幾個(gè)方面:

(1)條目?jī)?nèi)容正確,根據(jù)需求規(guī)格說(shuō)明書(shū)確定列表的各項(xiàng)內(nèi)容正確,沒(méi)有丟失或錯(cuò)誤。

(2)列表框的內(nèi)容較多時(shí)要使用滾動(dòng)條。

(3)列表框允許多選時(shí),要分別檢查Shift選中條目,按Ctrl選中條目和直接用鼠標(biāo)選中多項(xiàng)條目的情況。

發(fā)表日志頁(yè)面中有多個(gè)列表框,下面以系統(tǒng)分類(lèi)列表框?yàn)槔M(jìn)行測(cè)試。系統(tǒng)分類(lèi)列表框中有10項(xiàng)條目,且不允許多選。為系統(tǒng)分類(lèi)列表框設(shè)計(jì)測(cè)試用例,見(jiàn)表11-3-5。

5)文本編輯工具條和文本格式工具條

在發(fā)表日志頁(yè)面的文章編輯中,提供了文本編輯的常用工具條和文本格式工具條。我們可根據(jù)各工具項(xiàng)的功能和特點(diǎn)進(jìn)行測(cè)試。

比如右對(duì)齊,可以先輸入文本,然后點(diǎn)擊右對(duì)齊按鈕,檢查文本是否右對(duì)齊;也可先點(diǎn)擊右對(duì)齊按鈕,檢查光標(biāo)是否移到最右邊;也可選中文本,然后點(diǎn)擊右對(duì)齊按鈕,檢查文本是否右對(duì)齊。其他工具條的功能測(cè)試不再贅述。

6)添加附件

在發(fā)表日志時(shí)可以上傳附件。附件描述文本框的測(cè)試方法與日志標(biāo)題文本框的測(cè)試方法類(lèi)同。對(duì)于附件內(nèi)容的測(cè)試可以從下面幾個(gè)方面考慮:

(1)添加附件時(shí)能否打開(kāi)本地磁盤(pán)上的所有文件夾,能否選擇符合條件的文件。

(2)附件類(lèi)型和大小符合要求,能否添加上附件。

(3)附件類(lèi)型不符合要求,是否給出提示。

(4)附件大小超過(guò)指定大小,是否給出提示。

7)各種控件在窗體中混合使用時(shí)的測(cè)試

8)后臺(tái)數(shù)據(jù)庫(kù)的測(cè)試

以管理員的身份進(jìn)入后臺(tái)數(shù)據(jù)庫(kù),檢查所提交的日志是否與數(shù)據(jù)庫(kù)中的數(shù)據(jù)一致。

2.執(zhí)行測(cè)試

發(fā)表日志模塊的測(cè)試采用手動(dòng)測(cè)試和自動(dòng)化測(cè)試相結(jié)合的方式。對(duì)單個(gè)組件的測(cè)試采用手動(dòng)測(cè)試,對(duì)發(fā)表日志頁(yè)面中各組件進(jìn)行組合測(cè)試時(shí),采用自動(dòng)化測(cè)試方法。手動(dòng)測(cè)試時(shí)按要求依次執(zhí)行各測(cè)試用例,并記錄測(cè)試結(jié)果。采用自動(dòng)化測(cè)試方法測(cè)試時(shí),首先需要錄制腳本,然后采用參數(shù)化和插入檢查點(diǎn)的方法增強(qiáng)腳本,隨后執(zhí)行測(cè)試腳本,分析測(cè)試結(jié)果。

3.測(cè)試結(jié)果分析

執(zhí)行了發(fā)表日志模塊的各測(cè)試用例后,發(fā)現(xiàn)1個(gè)缺陷。缺陷為:用戶打開(kāi)添加日志頁(yè)面時(shí)有時(shí)沒(méi)有認(rèn)證碼標(biāo)簽、認(rèn)證碼輸入框和認(rèn)證碼圖片。11.3.3相冊(cè)模塊的測(cè)試

在這里我們重點(diǎn)介紹相冊(cè)模塊中上傳圖片子模塊的測(cè)試。根據(jù)上傳圖片模塊的功能特點(diǎn),采用場(chǎng)景測(cè)試法進(jìn)行測(cè)試。

1.測(cè)試用例設(shè)計(jì)

使用場(chǎng)景法進(jìn)行測(cè)試時(shí)必須首先分析出被測(cè)對(duì)象的基本事務(wù)流和備選事務(wù)流。上傳圖片模塊的開(kāi)始是用戶進(jìn)入相冊(cè)管理。上傳圖片包括三個(gè)基本步驟:

(1)選擇圖片。

(2)選擇圖片專輯。

(3)輸入認(rèn)證碼。這三步依次正確的操作便形成了基本事務(wù)流。

在該模塊中有三條備選流,分別是:

(1)備選流一:在基本流步驟(1)中,附件不符合要求(非圖片或圖片格式不符合要求,附件超過(guò)指定大小102400字節(jié),附件為空)。

(2)備選流二:在基本流步驟(2)中,添加相冊(cè)。有兩種情況:一是未創(chuàng)建相冊(cè),無(wú)相冊(cè)可選,需要添加相冊(cè);二是已有相冊(cè),準(zhǔn)備另外添加新相冊(cè)。

(3)備選流三:在基本流步驟(3)中,認(rèn)證碼錯(cuò)誤。每個(gè)備選流自基本流開(kāi)始,之后,備選流會(huì)在某個(gè)特定條件下執(zhí)行。備選流可能會(huì)重新加入基本流中,還可能起源于另一個(gè)備選流,或者終止用例而不再重新加入某個(gè)流。模塊中每條可能路徑可以確定不同的用例場(chǎng)景。從基本流開(kāi)始,將基本流和備選流結(jié)合起來(lái),可以確定以下用例場(chǎng)景:

場(chǎng)景1:基本流。

場(chǎng)景2:基本流,備選流一。

場(chǎng)景3:基本流,備選流二。

場(chǎng)景4:基本流,備選流三。

場(chǎng)景5:基本流,備選流一,備選流三。

2.執(zhí)行測(cè)試

該模塊采用手動(dòng)方式執(zhí)行測(cè)試。根據(jù)各測(cè)試用例的說(shuō)明,依次執(zhí)行。

3.測(cè)試結(jié)果分析

執(zhí)行完各測(cè)試用例,未發(fā)現(xiàn)缺陷。上傳圖片模塊的功能正常,但上傳圖片最大只有1M,太小了,建議上傳圖片的大小可以增加到5M以上,更能滿足用戶的需求。11.3.4鏈接測(cè)試

1.鏈接測(cè)試原理

鏈接測(cè)試的原理是:從待測(cè)網(wǎng)站的根目錄開(kāi)始搜索所有的網(wǎng)頁(yè)文件,對(duì)所有網(wǎng)頁(yè)文件中的超級(jí)鏈接、圖片文件、包含文件、CSS文件、頁(yè)面內(nèi)部鏈接等所有鏈接進(jìn)行讀取。如果網(wǎng)站內(nèi)文件不存在、指定文件鏈接不存在或者是指定頁(yè)面不存在,則將該鏈接和所處的具體位置記錄下來(lái)。如果發(fā)現(xiàn)被測(cè)網(wǎng)站內(nèi)有頁(yè)面既沒(méi)有鏈接到其他資源也沒(méi)有被其他資源鏈接,則可以判定該頁(yè)面為孤立頁(yè)面,將該頁(yè)面添加到孤立頁(yè)面記錄中。鏈接測(cè)試的內(nèi)容主要包括:

(1)測(cè)試所有鏈接是否按指示的那樣確實(shí)鏈接到了應(yīng)該鏈接的頁(yè)面。

(2)測(cè)試所鏈接的頁(yè)面是否存在。

(3)保證Web應(yīng)用系統(tǒng)上沒(méi)有孤立的頁(yè)面。

鏈接測(cè)試必須在集成測(cè)試階段完成,也就是說(shuō),在整個(gè)Web應(yīng)用系統(tǒng)的所有頁(yè)面開(kāi)發(fā)完成之后進(jìn)行鏈接測(cè)試。

鏈接測(cè)試需要對(duì)整個(gè)網(wǎng)站的所有鏈接進(jìn)行,而一般的網(wǎng)站內(nèi)的鏈接錯(cuò)亂復(fù)雜,猶如一張大蜘蛛網(wǎng),稍有疏忽便有測(cè)試不完全的地方,因此引入鏈接自動(dòng)化測(cè)試能夠大幅提高鏈接測(cè)試的效率。

2.XenuLinkSleuth鏈接測(cè)試工具

在本例中我們將采用XenuLinkSleuth1.2j進(jìn)行鏈接測(cè)試。

XenuLinkSleuth(Xenu鏈接檢測(cè)偵探)是被廣泛使用的死鏈接檢測(cè)工具,可以檢測(cè)到網(wǎng)頁(yè)中各種類(lèi)型的鏈接。它可以分別列出網(wǎng)站的活鏈接以及死鏈接,并可把檢查結(jié)果存儲(chǔ)成文本文件或網(wǎng)頁(yè)文件。該工具總體上具有以下特色:

(1)用戶界面非常簡(jiǎn)潔,操作簡(jiǎn)單。

(2)支持多線程。

(3)檢測(cè)徹底:能夠檢測(cè)到圖片、框架、插件、背景、樣式表、腳本和Java程序中的鏈接。

(4)報(bào)告形式合理多樣,死鏈接一目了然。

(5)提供出現(xiàn)死鏈接的網(wǎng)頁(yè),方便掃除導(dǎo)出鏈接錯(cuò)誤。

(6)能夠偵測(cè)重定向URL。

(7)可以選擇是否偵測(cè)站外鏈接。

(8)對(duì)于小型簡(jiǎn)單網(wǎng)站,可以用來(lái)制作HTML格式網(wǎng)站地圖。

安裝好XenuLinkSleuth后,打開(kāi)XenuLinkSleuth,進(jìn)入其主界面,輸入網(wǎng)站地址(:8080/Blog/index.php)進(jìn)行測(cè)試。測(cè)試完畢后,可以通過(guò)Report得到測(cè)試報(bào)告。

3.博客系統(tǒng)的鏈接測(cè)試

使用XenuLinkSleuth對(duì)博客系統(tǒng)進(jìn)行鏈接測(cè)試。測(cè)試過(guò)程中發(fā)現(xiàn)2個(gè)錯(cuò)誤鏈接,錯(cuò)誤提示和測(cè)試界面如圖11-3-5和圖11-3-6所示。

(1)?:8080/Blog/image/default/styleuser.css,Error:resourcenotfound。

(2)?/rss.php?uid=1,Error:resourcenotfound。圖11-3-5鏈接測(cè)試錯(cuò)誤一圖11-3-6鏈接測(cè)試錯(cuò)誤二

Xenu執(zhí)行完測(cè)試后,會(huì)自動(dòng)生成測(cè)試報(bào)告,測(cè)試報(bào)告中會(huì)列出各鏈接的URL,并分析網(wǎng)站中的鏈接情況,給出測(cè)試結(jié)果。本次測(cè)試的結(jié)果如圖11-3-7所示。圖11-3-7鏈接測(cè)試結(jié)果

11.4博客系統(tǒng)性能測(cè)試

性能測(cè)試就是模擬大量用戶對(duì)軟件系統(tǒng)的各種操作,獲取系統(tǒng)和應(yīng)用的性能指標(biāo),分析軟件是否滿足用戶的需求。性能測(cè)試的特點(diǎn)決定了我們不可能完全采用傳統(tǒng)的手工方式完成,必須借助于自動(dòng)化測(cè)試工具來(lái)實(shí)現(xiàn)。自動(dòng)化測(cè)試工具具有下列特點(diǎn)和優(yōu)勢(shì):

(1)通過(guò)使用虛擬用戶代替實(shí)際用戶來(lái)減少測(cè)試人員數(shù)量上的要求。虛擬用戶可以模擬實(shí)際用戶行為,運(yùn)行實(shí)際的應(yīng)用程序。

(2)一臺(tái)計(jì)算機(jī)上可以運(yùn)行多個(gè)虛擬用戶,因此減少了硬件設(shè)備的需求。

(3)可以使測(cè)試人員從一個(gè)單一的控制點(diǎn)簡(jiǎn)單有效地控制所有虛擬用戶。

(4)在測(cè)試過(guò)程中會(huì)自動(dòng)記錄應(yīng)用程序的性能。測(cè)試人員可以從眾多圖表和報(bào)告中進(jìn)行選擇以查看性能數(shù)據(jù)。

本系統(tǒng)采用HP-Mercury公司的LoadRunner性能測(cè)試工具進(jìn)行性能測(cè)試。LoadRunner的測(cè)試流程如圖11-4-1所示。圖11-4-1LoadRunner測(cè)試流程

1)制定負(fù)載測(cè)試計(jì)劃

在任何類(lèi)型的測(cè)試中,測(cè)試計(jì)劃都是必要的步驟。測(cè)試計(jì)劃是進(jìn)行成功的負(fù)載測(cè)試的關(guān)鍵。任何類(lèi)型的測(cè)試的第一步都是制定比較詳細(xì)的測(cè)試計(jì)劃。

測(cè)試計(jì)劃中要重點(diǎn)分析系統(tǒng)的性能需求,并確定性能測(cè)試內(nèi)容。

2)開(kāi)發(fā)測(cè)試腳本

LoadRunner使用虛擬用戶的活動(dòng)模擬真實(shí)用戶來(lái)操作Web應(yīng)用程序,而虛擬用戶的活動(dòng)就包含在測(cè)試腳本中,所以說(shuō)測(cè)試腳本對(duì)于測(cè)試來(lái)說(shuō)是非常重要的。

開(kāi)發(fā)測(cè)試腳本要使用?VuGen?組件。測(cè)試腳本要完成的內(nèi)容有:

(1)創(chuàng)建每一個(gè)虛擬用戶的活動(dòng)。

(2)定義事務(wù)。

(3)設(shè)定集合點(diǎn)。

(4)插入檢查點(diǎn)。

3)創(chuàng)建場(chǎng)景

場(chǎng)景描述在測(cè)試活動(dòng)中發(fā)生的各種事件。一個(gè)場(chǎng)景包括一個(gè)運(yùn)行虛擬用戶活動(dòng)的壓力機(jī)器(LoadGenerator)列表,一個(gè)測(cè)試腳本的列表以及大量的虛擬用戶和虛擬用戶組。我們使用LoadRunner中的Controller來(lái)創(chuàng)建場(chǎng)景。在創(chuàng)建測(cè)試場(chǎng)景之前需要設(shè)計(jì)出合理的測(cè)試場(chǎng)景,以便更真實(shí)地模擬用戶使用軟件系統(tǒng)的情況。

4)運(yùn)行測(cè)試

一切配置妥當(dāng)即可開(kāi)始運(yùn)行測(cè)試。

5)監(jiān)視場(chǎng)景

在運(yùn)行測(cè)試的過(guò)程中,需要監(jiān)視各個(gè)服務(wù)器的運(yùn)行情況(數(shù)據(jù)庫(kù)服務(wù)器、Web服務(wù)器等)和客戶端的情況,獲得各項(xiàng)性能指標(biāo)。監(jiān)視各項(xiàng)性能指標(biāo)可通過(guò)添加性能計(jì)數(shù)器來(lái)實(shí)現(xiàn)。

6)分析測(cè)試結(jié)果

我們需要分析大量的圖表,生成各種不同的報(bào)告,最后得出結(jié)論,并對(duì)系統(tǒng)性能做出評(píng)價(jià)。11.4.1測(cè)試計(jì)劃

1.系統(tǒng)分析

本博客系統(tǒng)的用戶有兩類(lèi):一類(lèi)是教師,約1000人;另一類(lèi)是學(xué)生,約4000人。其中教師可以建立個(gè)人主頁(yè)并進(jìn)行管理,而學(xué)生不能建立個(gè)人主頁(yè),主要是瀏覽教師的主頁(yè),下載相關(guān)資料。

2.系統(tǒng)壓力強(qiáng)度估算

進(jìn)行性能測(cè)試前,需要初步估計(jì)系統(tǒng)的壓力。測(cè)試壓力估算時(shí)采用原則如下:

(1)系統(tǒng)在線用戶數(shù)取系統(tǒng)總用戶數(shù)的20%。

(2)系統(tǒng)在線用戶并發(fā)數(shù)取在線用戶數(shù)的30%。

本博客系統(tǒng)的總用戶數(shù)為5000人,因此系統(tǒng)的在線用戶數(shù)和并發(fā)用戶數(shù)分別是:

(1)在線用戶數(shù):5000×20%=1000。

(2)并發(fā)用戶數(shù):1000×30%=300。這個(gè)并發(fā)用戶數(shù)是針對(duì)整個(gè)網(wǎng)站的。對(duì)于一些業(yè)務(wù)(如登錄個(gè)人主頁(yè),然后進(jìn)行相關(guān)的操作),其并發(fā)用戶數(shù)會(huì)比較少,因?yàn)橹挥凶?cè)用戶(教師)才可以操作。這部分業(yè)務(wù)的并發(fā)用戶數(shù)為:1000×20%×30%=60,在設(shè)計(jì)測(cè)試用例時(shí)把最大的并發(fā)用戶數(shù)定為100。在后面的測(cè)試用例中,最大的并發(fā)用戶數(shù)達(dá)到了200,這樣做主要是為了充分得到用戶的認(rèn)可,提高用戶對(duì)系統(tǒng)的滿意度。

3.系統(tǒng)性能測(cè)試項(xiàng)

本次性能測(cè)試的主要內(nèi)容是用戶并發(fā)測(cè)試。用戶并發(fā)測(cè)試主要是對(duì)系統(tǒng)的核心功能和重要業(yè)務(wù)進(jìn)行測(cè)試,并以真實(shí)的業(yè)務(wù)數(shù)據(jù)作為輸入,選擇有代表性和關(guān)鍵的業(yè)務(wù)操作來(lái)設(shè)計(jì)測(cè)試用例。根據(jù)測(cè)試計(jì)劃,對(duì)下列業(yè)務(wù)進(jìn)行并發(fā)測(cè)試:

(1)登錄操作。

(2)發(fā)表日志。

(3)上傳照片。

(4)組合業(yè)務(wù)。

4.測(cè)試方法

對(duì)系統(tǒng)進(jìn)行性能測(cè)試必須要借助于性能測(cè)試工具進(jìn)行。本例采用LoadRunner進(jìn)行性能測(cè)試。11.4.2測(cè)試用例設(shè)計(jì)

本例中重點(diǎn)測(cè)試登錄模塊、發(fā)表日志模塊和上傳照片模塊的并發(fā)性能,設(shè)計(jì)性能測(cè)試用例如下。

(1)登錄模塊。在測(cè)試用例設(shè)計(jì)中,登錄用戶分別取10、20、50、100、200,見(jiàn)表11-4-1。取10個(gè)并發(fā)用戶是為了觀察少量用戶登錄系統(tǒng)時(shí)系統(tǒng)的表現(xiàn),然后逐漸增加用戶,以觀察系統(tǒng)性能指標(biāo)隨用戶數(shù)增加時(shí)的變化情況。

(5)組合業(yè)務(wù)性能測(cè)試。所有的用戶不會(huì)只使用核心模塊,通常每個(gè)功能都可能被使用到,所以既要模擬多用戶的“相同”操作,又要模擬多用戶的不同操作,對(duì)多個(gè)業(yè)務(wù)進(jìn)行組合性能測(cè)試。

業(yè)務(wù)組合測(cè)試是更接近用戶實(shí)際操作系統(tǒng)的測(cè)試,因此用例編寫(xiě)要充分考慮實(shí)際情況,選擇最接近實(shí)際的場(chǎng)景進(jìn)行設(shè)計(jì)。這里的業(yè)務(wù)組成單位以不同模塊中的“子操作事務(wù)”為單位,進(jìn)行各個(gè)模塊的不同業(yè)務(wù)的組合。

下面選擇“登錄系統(tǒng)、添加日志、閱讀日志、添加照片、瀏覽照片”等事務(wù)作為一組組合業(yè)務(wù)進(jìn)行測(cè)試,用例設(shè)計(jì)信息如表?11-4-5?所示。11.4.3測(cè)試腳本開(kāi)發(fā)

性能測(cè)試腳本是描述單個(gè)瀏覽器向Web服務(wù)器發(fā)送HTTP請(qǐng)求序列的。將業(yè)務(wù)流程轉(zhuǎn)化為測(cè)試腳本,通常指的就是虛擬用戶腳本或虛擬用戶。虛擬用戶通過(guò)驅(qū)動(dòng)一個(gè)真正的客戶程序來(lái)模擬真實(shí)用戶。在這個(gè)步驟里,要將各類(lèi)被測(cè)業(yè)務(wù)流程從頭至尾進(jìn)行確認(rèn)和記錄,弄清這些過(guò)程可以幫助分析到每步操作的細(xì)節(jié)和時(shí)間,并能精確地轉(zhuǎn)化為腳本。此過(guò)程類(lèi)似制造一個(gè)能夠模仿人的行為和動(dòng)作的機(jī)器人過(guò)程,其實(shí)質(zhì)是將現(xiàn)實(shí)世界中的單個(gè)用戶行為比較精確地轉(zhuǎn)化為計(jì)算機(jī)程序語(yǔ)言。

本次性能測(cè)試采用HP公司的LoadRunner工具,腳本編輯和編譯工作在VirtualUserGenerator(虛擬用戶生成器,簡(jiǎn)稱VUGen)中進(jìn)行。

VuGen通過(guò)錄制對(duì)客戶端應(yīng)用程序執(zhí)行的操作來(lái)創(chuàng)建虛擬用戶腳本。運(yùn)行錄制的腳本時(shí),生成的虛擬用戶將模擬客戶端與服務(wù)器之間的交互活動(dòng)(通信過(guò)程)。

創(chuàng)建的每個(gè)虛擬用戶腳本都至少包含三部分:vuser_init、一個(gè)或多個(gè)Actions及vuser_end。通常情況下,可以將登錄到服務(wù)器的活動(dòng)錄制到vuser_init部分中、將客戶端活動(dòng)錄制到Actions部分中,并將注銷(xiāo)過(guò)程錄制到vuser_end部分中。表11-4-6顯示了要在每一部分錄制的內(nèi)容以及執(zhí)行每一部分的時(shí)間。

1.登錄模塊的腳本

錄制登錄模塊的腳本也涉及到驗(yàn)證碼的問(wèn)題。為簡(jiǎn)化問(wèn)題,我們采用萬(wàn)能驗(yàn)證碼,驗(yàn)證碼為“1234”。

錄制的測(cè)試腳本如下:如果對(duì)系統(tǒng)用戶的行為模仿失真,不能反映系統(tǒng)真實(shí)的使用情況,性能測(cè)試的有效性和必要性也就失去了意義。我們錄制的腳本中用戶名和密碼是固定的,也就是說(shuō)所有用戶都用同一個(gè)用戶名和密碼登錄,這和實(shí)際情況不符。因此對(duì)用戶名和密碼進(jìn)行參數(shù)化,以便更真實(shí)地模擬實(shí)際情況。參數(shù)化設(shè)置如圖11-4-2所示。圖11-4-2參數(shù)化腳本

2.發(fā)表日志的腳本

在發(fā)表日志模塊中,需要錄制兩份腳本,分別發(fā)表不帶附件的日志和發(fā)表帶有附件的日志。錄制的業(yè)務(wù)過(guò)程為:登錄個(gè)人主頁(yè),進(jìn)入添加日志頁(yè)面,填寫(xiě)日志內(nèi)容,提交日志,退出系統(tǒng)。在腳本中需要插入事務(wù)和集合點(diǎn)。

(1)插入事務(wù):為了在執(zhí)行測(cè)試時(shí)更準(zhǔn)確地獲得提交日志的響應(yīng)時(shí)間和其他性能指標(biāo),需要將提交日志的過(guò)程單獨(dú)作為一個(gè)事務(wù)。

(2)插入集合點(diǎn):在測(cè)試計(jì)劃中,要求系統(tǒng)能夠承受大量用戶(如100人)同時(shí)提交數(shù)據(jù),在LoadRunner中可以通過(guò)在提交數(shù)據(jù)操作前面加入集合點(diǎn)來(lái)實(shí)現(xiàn)。當(dāng)虛擬用戶運(yùn)行到提交數(shù)據(jù)的集合點(diǎn)時(shí),LoadRunner會(huì)檢查有多少用戶運(yùn)行到集合點(diǎn),如果不到100人,LoadRunner就會(huì)命令已經(jīng)到集合點(diǎn)的用戶在此等待,當(dāng)在集合點(diǎn)等待的用戶達(dá)到100人時(shí),LoadRunner命令100人同時(shí)去提交數(shù)據(jù),從而達(dá)到測(cè)試計(jì)劃中的需求。

3.上傳照片的腳本

錄制腳本的方法同上,在此省略。11.4.4測(cè)試環(huán)境

軟件運(yùn)行時(shí)表現(xiàn)出來(lái)的性能除了與軟件本身有關(guān)外,還跟其運(yùn)行的軟硬件環(huán)境有關(guān)。影響性能的因素包括:硬件環(huán)境(CPU數(shù)、內(nèi)存大小、總線速度)、網(wǎng)絡(luò)狀況、系統(tǒng)/應(yīng)用服務(wù)器/數(shù)據(jù)庫(kù)配置、數(shù)據(jù)庫(kù)設(shè)計(jì)與數(shù)據(jù)庫(kù)訪問(wèn)實(shí)現(xiàn)及系統(tǒng)架構(gòu)(同步/異步)。因此配置測(cè)試環(huán)境是測(cè)試實(shí)施的一個(gè)重要步驟。測(cè)試環(huán)境的適合與否會(huì)嚴(yán)重影響測(cè)試結(jié)果的真實(shí)性和正

確性。

性能測(cè)試環(huán)境要求和真實(shí)環(huán)境一致或可對(duì)比。做性能測(cè)試時(shí),一般需要在真實(shí)環(huán)境做測(cè)試,或者與真實(shí)環(huán)境資源配制相同的環(huán)境,需要記錄所有相關(guān)服務(wù)器和測(cè)試機(jī)的詳細(xì)信息。本次性能測(cè)試環(huán)境與真實(shí)運(yùn)行環(huán)境基本一致,都運(yùn)行在同樣的硬件和網(wǎng)絡(luò)環(huán)境中,數(shù)據(jù)庫(kù)是真實(shí)環(huán)境數(shù)據(jù)庫(kù)的一個(gè)復(fù)制(或縮小),本系統(tǒng)采用標(biāo)準(zhǔn)的B/S結(jié)構(gòu),客戶端都是通過(guò)瀏覽器訪問(wèn)應(yīng)用系統(tǒng)。

本次性能測(cè)試的環(huán)境如下。

1.網(wǎng)絡(luò)

學(xué)校內(nèi)部的以太網(wǎng),與服務(wù)器的連接速率為100Mb/s,與客戶端的連接速率為10/100Mb/s自適應(yīng)。

2.軟/硬件配置

性能測(cè)試的軟件和硬件配置如表11-4-7所示。圖11-4-3性能測(cè)試環(huán)境11.4.5測(cè)試執(zhí)行

1.設(shè)置性能測(cè)試場(chǎng)景

在LoadRunner的Controller中使用“手動(dòng)設(shè)置”方式來(lái)設(shè)計(jì)場(chǎng)景。在“ScenarioScripts”中設(shè)置要執(zhí)行的腳本和虛擬用戶加載器(LoadGenerators),即設(shè)置運(yùn)行測(cè)試腳本的物理機(jī)器。在“GlobalSchedule”中主要設(shè)置虛擬用戶數(shù)量。在“ScheduleBuilder”頁(yè)中設(shè)置虛擬用戶初始化、啟動(dòng)、退出的方式,以及滿負(fù)載時(shí)的持續(xù)時(shí)間等參數(shù),其界面如圖11-4-4所示。圖11-4-4手動(dòng)場(chǎng)景設(shè)置

2.虛擬IP的設(shè)置

當(dāng)運(yùn)行場(chǎng)景時(shí),虛擬用戶使用它們所在的LoadGenerator(虛擬用戶加載器)的固定的IP地址,同時(shí)每個(gè)LoadGenerator上運(yùn)行大量的虛擬用戶,這樣就造成了大量的用戶使用同一IP地址同時(shí)訪問(wèn)一個(gè)網(wǎng)站的情況,這種情況和實(shí)際運(yùn)行的情況不符,并且有一些網(wǎng)站會(huì)根據(jù)用戶IP地址來(lái)分配資源,這些網(wǎng)站會(huì)限制多個(gè)用戶用同一個(gè)IP地址登錄和使用等。為了更加真實(shí)地模擬實(shí)際情況,LoadRunner允許運(yùn)行的虛擬用戶使用不同的IP地址訪問(wèn)同一網(wǎng)站,這種技術(shù)稱為“IP欺騙(IPSpoofer)”。啟用該選項(xiàng)后,場(chǎng)景中運(yùn)行的虛擬用戶將模擬從不同的IP地址發(fā)送請(qǐng)求。

虛擬IP的設(shè)置過(guò)程請(qǐng)參看LoadRunner使用指南。

3.監(jiān)控各性能指標(biāo)

在性能測(cè)試執(zhí)行過(guò)程中,需要關(guān)注應(yīng)用系統(tǒng)的各項(xiàng)響應(yīng)指標(biāo)和系統(tǒng)資源的各項(xiàng)指標(biāo)。實(shí)時(shí)監(jiān)測(cè)能讓測(cè)試人員時(shí)刻了解應(yīng)用程序的性能,在測(cè)試執(zhí)行中及早發(fā)現(xiàn)性能瓶頸。

在Loadrunner中的Controller中有Windows系統(tǒng)資源計(jì)數(shù)器、Apache計(jì)數(shù)器、Mysql計(jì)數(shù)器,能夠檢測(cè)系統(tǒng)資源消耗情況,并最終和測(cè)試結(jié)果數(shù)據(jù)合并,生成分析圖表。測(cè)試結(jié)果可在測(cè)試執(zhí)行完畢后通過(guò)LoadRunner工具中的Analysis(分析器)獲得。

4.性能測(cè)試實(shí)施

1)登錄個(gè)人主頁(yè)

按照測(cè)試用例的要求設(shè)置測(cè)試場(chǎng)景。

場(chǎng)景1:模擬10個(gè)用戶在同一時(shí)刻登錄系統(tǒng),持續(xù)時(shí)間為10分鐘;

場(chǎng)景2:模擬20個(gè)用戶在同一時(shí)刻登錄系統(tǒng),持續(xù)時(shí)間為10分鐘;

場(chǎng)景3:模擬50個(gè)用戶在同一時(shí)刻登錄系統(tǒng),持續(xù)時(shí)間為5分鐘;

場(chǎng)景4:模擬100個(gè)用戶在逐步登錄系統(tǒng),首先10個(gè)用戶登錄,然后每隔10秒登錄5個(gè),持續(xù)時(shí)間為5分鐘;場(chǎng)景5:模擬200個(gè)用戶在逐步登錄系統(tǒng);首先20個(gè)用戶登錄,然后每隔10秒登錄10個(gè),持續(xù)時(shí)間為5分鐘。

場(chǎng)景設(shè)置完成后,控制器將腳本分發(fā)到負(fù)載生成器向被測(cè)系統(tǒng)發(fā)起服務(wù)請(qǐng)求,同時(shí)通過(guò)服務(wù)器上的性能監(jiān)控器收集性能數(shù)據(jù)。性能信息采樣頻率會(huì)對(duì)服務(wù)器的性能產(chǎn)生影響,選取重要的性能計(jì)數(shù)器并使用低的采樣率,降低干擾。執(zhí)行測(cè)試場(chǎng)景的界面如圖11-4-5所示。圖11-4-5執(zhí)行測(cè)試場(chǎng)景

2)發(fā)表日志(不帶附件)

發(fā)表日志的測(cè)試場(chǎng)景設(shè)置方法同登錄個(gè)人主頁(yè),依次執(zhí)行各測(cè)試場(chǎng)景。測(cè)試結(jié)果數(shù)據(jù)見(jiàn)表11-4-9。

3)發(fā)表日志(帶附件)

發(fā)表帶附件的日志的測(cè)試過(guò)程同上,測(cè)試結(jié)果數(shù)據(jù)如表11-4-10所示。

4)上傳圖片

5)組合業(yè)務(wù)

首先在Controller中設(shè)置測(cè)試場(chǎng)景,同時(shí)加載業(yè)務(wù)1、業(yè)務(wù)2和業(yè)務(wù)3的測(cè)試腳本,并設(shè)置虛擬用戶的百分比,分別為20%、45%、35%。

場(chǎng)景1:模擬10個(gè)用戶進(jìn)入系統(tǒng)。所有用戶并發(fā)操作,持續(xù)時(shí)間為10分鐘。

場(chǎng)景2:模擬20個(gè)用戶進(jìn)入系統(tǒng)。所有用戶并發(fā)操作,持續(xù)時(shí)間為10分鐘。

場(chǎng)景3:模擬50個(gè)用戶操作系統(tǒng)。首先10個(gè)用戶登錄,然后每隔10秒登錄5個(gè),持續(xù)時(shí)間為10分鐘。場(chǎng)景4:模擬100個(gè)用戶操作系統(tǒng)。在Controller中加載業(yè)務(wù)1、業(yè)務(wù)2和業(yè)務(wù)3的腳本,并設(shè)置虛擬用戶的百分比,分別為20%、45%、35%。首先20個(gè)用戶登錄,然后每隔10秒登錄5個(gè),持續(xù)時(shí)間為5分鐘。

場(chǎng)景5:模擬200個(gè)用戶操作系統(tǒng)。首先20個(gè)用戶登錄,然后每隔10秒登錄10個(gè),持續(xù)時(shí)間為5分鐘。

依次執(zhí)行5個(gè)測(cè)試場(chǎng)景,并記錄測(cè)試數(shù)據(jù)。測(cè)試數(shù)據(jù)如表11-4-12所示。11.4.6測(cè)試結(jié)果分析

在整個(gè)性能測(cè)試過(guò)程中,自動(dòng)化測(cè)試工具的選擇只能影響性能測(cè)試執(zhí)行的復(fù)雜程度。但人的分析和思考卻會(huì)直接導(dǎo)致性能測(cè)試的成敗。因此測(cè)試結(jié)果分析是非常重要和關(guān)鍵的。

測(cè)試結(jié)果分析就是結(jié)合測(cè)試結(jié)果數(shù)據(jù),分析出系統(tǒng)性能行為表現(xiàn)的規(guī)律,并準(zhǔn)確定位系統(tǒng)的性能瓶頸所在。在這個(gè)步驟里,可以利用數(shù)學(xué)手段對(duì)大批量數(shù)據(jù)進(jìn)行計(jì)算和統(tǒng)計(jì),使結(jié)果更加具有客觀性。用LoadRunner的Controller執(zhí)行完測(cè)試后,運(yùn)行結(jié)果數(shù)據(jù)將從各負(fù)載生成器進(jìn)行匯總,產(chǎn)生性能分析圖表。它包括了一些關(guān)鍵性能數(shù)據(jù),如事務(wù)響應(yīng)時(shí)間、吞吐量等。通過(guò)Analysis模塊的輸出功能,可方便地生成HTML、Word或者Crystal的報(bào)表,用戶可以根據(jù)不同的測(cè)試需求進(jìn)行定制、分析和再處理。Analysis中生成的測(cè)試結(jié)果摘要如圖11-4-6所示。圖11-4-6測(cè)試結(jié)果

1.10~20個(gè)并發(fā)用戶

從前面的測(cè)試結(jié)果數(shù)據(jù)可以看出,有10~20個(gè)并發(fā)用戶時(shí),各事務(wù)的最大響應(yīng)時(shí)間均在5s以內(nèi),事務(wù)成功率為100%,滿足系統(tǒng)的要求。

2.50個(gè)并發(fā)用戶

50個(gè)并發(fā)用戶的測(cè)試結(jié)果見(jiàn)表11-4-13。

4.200個(gè)并發(fā)用戶

200個(gè)并發(fā)用戶的測(cè)試結(jié)果見(jiàn)表11-4-15。

11.5其他非功能性測(cè)試

1.兼容性測(cè)試

1)操作系統(tǒng)

市場(chǎng)上有很多不同的操作系統(tǒng)類(lèi)型,最常見(jiàn)的有Windows、UNIX、Linux等。博客系統(tǒng)的最終用戶究竟使用哪一種操作系統(tǒng),取決于用戶系統(tǒng)的配置。這樣,就可能會(huì)發(fā)生兼容性問(wèn)題。因此,需要在各種操作系統(tǒng)下對(duì)Web系統(tǒng)進(jìn)行兼容性測(cè)試。

本例中,分別測(cè)試了Windows2000、WindowsXP、Windows2003、WindowsVista和Radhat9.0操作系統(tǒng)與博客系統(tǒng)的兼容性,未發(fā)現(xiàn)異常。

2)瀏覽器測(cè)試

瀏覽器是Web客戶端重要的構(gòu)件,來(lái)自不同廠商的瀏

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論