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

下載本文檔

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

文檔簡介

第6章軟件性能測試6.1軟件性能測試基礎(chǔ)6.2軟件性能測試過程6.3性能測試工具6.4軟件性能測試實(shí)踐16.1軟件性能測試基礎(chǔ)2現(xiàn)代軟件系統(tǒng)特點(diǎn):軟件系統(tǒng)開發(fā)至今已經(jīng)從單機(jī)應(yīng)用時代過渡到Web應(yīng)用系統(tǒng)占主導(dǎo)地位的時代,而且,近年來隨著物聯(lián)網(wǎng)、互聯(lián)網(wǎng)+、移動通信、大數(shù)據(jù)等的興起,大力促進(jìn)了Web系統(tǒng)的快速發(fā)展和廣泛應(yīng)用。6.1軟件性能測試基礎(chǔ)3Web系統(tǒng)的性能衡量很重要:軟件僅在功能上符合要求已經(jīng)不能滿足用戶的實(shí)際需要,還要檢驗(yàn)和測試整個軟件系統(tǒng)是否達(dá)到了性能和可靠性的預(yù)期目標(biāo),如響應(yīng)時間、資源利用率、吞吐量、并發(fā)用戶數(shù)、點(diǎn)擊率等,對Web系統(tǒng)的性能提出了挑戰(zhàn)。6.1軟件性能測試基礎(chǔ)4軟件性能問題造成的影響案例一:2007年10月30日,北京奧運(yùn)會門票面向境內(nèi)公眾第二階段預(yù)售正式啟動。上午9時至10時,官方票務(wù)網(wǎng)站的瀏覽量達(dá)到了800萬次,由于瞬間訪問數(shù)量過大,技術(shù)系統(tǒng)應(yīng)對不暢,造成很多申購者無法及時提交申請,上午11時癱瘓。針對訂票系統(tǒng)因瞬間超大訪問量而造成擁堵的情況,票務(wù)中心負(fù)責(zé)人表示,由于對廣大公眾的訂票需求估計(jì)不足,準(zhǔn)備工作存在缺陷,給大家申請購票造成不便,因此暫停第二階段網(wǎng)上門票銷售。6.1軟件性能測試基礎(chǔ)5軟件性能問題造成的影響案例二:12306火車票網(wǎng)上訂票系統(tǒng)歷時兩年,耗資3億元,于2011年6月12日投入運(yùn)行。2012年1月8日春運(yùn)啟動,9日網(wǎng)站點(diǎn)擊量超過14億次,系統(tǒng)出現(xiàn)網(wǎng)站崩潰、登錄緩慢、無法支付、扣錢不出票等嚴(yán)重問題。2012年9月20日,由于正處中秋和“十一”黃金周,網(wǎng)站日點(diǎn)擊量達(dá)到14.9億次,發(fā)售客票超過當(dāng)年春運(yùn)最高值,再次出現(xiàn)網(wǎng)絡(luò)擁堵、重復(fù)排隊(duì)等現(xiàn)象。其故障的根本原因在于系統(tǒng)架構(gòu)規(guī)劃以及客票發(fā)放機(jī)制存在缺陷,無法支持如此大并發(fā)量的交易。6.1軟件性能測試基礎(chǔ)6軟件性能問題造成的影響案例三:近年來,多個券商交易系統(tǒng)不堪天量交易重負(fù),一度陷入崩潰狀態(tài),頻頻出現(xiàn)客戶無法登錄、查詢失敗、報(bào)單無法成交、撤單無法執(zhí)行等故障。如用戶無法登錄并彈出對話框提示:“后臺系統(tǒng)繁忙,請稍后再試。”或在查詢賬戶持倉狀態(tài)時,交易系統(tǒng)顯示“溫馨提示:您的請求過于頻繁,請稍后再試?!睋?jù)券商交易系統(tǒng)的技術(shù)部門分析,早盤市場投資熱情較為活躍,短時間內(nèi)成交量太大,是造成券商交易系統(tǒng)難以承壓的原因之一。軟件性能是與軟件功能相對應(yīng)的一種非常重要的非功能特性,表明了軟件系統(tǒng)對時間及時性及資源經(jīng)濟(jì)性的要求。6.1.1性能測試的概念軟件性能包括兩方面:時間特性:運(yùn)行越快,性能越好資源利用性:需要資源越少,性能越好一般意義下對性能的理解:張三用吸塵器,花1小時把房間打掃干凈;李四用笤帚,花20分鐘把房間打掃干凈;功能:把房間打掃干凈性能:工具+時間6.1.1性能測試的概念對軟件性能的理解:功能相同的情況下,占用內(nèi)存越小性能越好執(zhí)行時間越短性能越好舉例:某兩種圖像處理軟件A、B均能夠?qū)D像進(jìn)行格式轉(zhuǎn)換軟件A完成某原始大小10MB的bmp圖像轉(zhuǎn)存jpg圖像操作時,占用內(nèi)存16MB,執(zhí)行時間為5S軟件B完成同樣圖像轉(zhuǎn)存時,占用內(nèi)存13MB,執(zhí)行時間為3S則可以說軟件B的性能優(yōu)于軟件A6.1.1性能測試的概念占用內(nèi)存大的軟件之所以認(rèn)為性能不好,主要是因?yàn)閮?nèi)存占滿后,程序運(yùn)行中會出現(xiàn)內(nèi)存進(jìn)出,降低執(zhí)行速度,所以軟件系統(tǒng)的整體性能,最終還是表現(xiàn)在軟件執(zhí)行速度方面。6.1.1性能測試的概念6.1.1性能測試的概念11軟件性能基本概念:軟件性能是衡量軟件非功能特性的一種重要指標(biāo),從廣義來說,是指一個軟件系統(tǒng)的執(zhí)行效率、資源占用、穩(wěn)定性、安全性、兼容性、可擴(kuò)展性、可靠性等等;狹義上,是表明軟件系統(tǒng)或構(gòu)件對時間及時性和資源經(jīng)濟(jì)性的要求。6.1.1性能測試的概念12軟件性能的關(guān)注角度——從系統(tǒng)用戶角度分析:軟件性能就是軟件對系統(tǒng)用戶操作的響應(yīng)時間,即當(dāng)用戶實(shí)際使用應(yīng)用系統(tǒng)時,從執(zhí)行一個功能操作(如在程序界面中點(diǎn)擊某個按鈕,或發(fā)送一條指令,或點(diǎn)擊一個連接)開始到系統(tǒng)將相應(yīng)的運(yùn)行結(jié)果返回給用戶所消耗的時間。軟件響應(yīng)時間越短,意味著軟件性能越好。6.1.1性能測試的概念13軟件性能的關(guān)注角度——從系統(tǒng)管理員角度分析:軟件性能不僅包括系統(tǒng)的響應(yīng)時間,還包括為用戶提供穩(wěn)定、持續(xù)服務(wù)的系統(tǒng)狀態(tài)信息,如資源利用率、系統(tǒng)可擴(kuò)展性、系統(tǒng)容量、系統(tǒng)穩(wěn)定性、系統(tǒng)的可用性和可靠性等方面。系統(tǒng)管理員通過關(guān)心系統(tǒng)的CPU利用率、內(nèi)存使用率、應(yīng)用服務(wù)器和數(shù)據(jù)庫服務(wù)器的資源使用狀況、系統(tǒng)擴(kuò)展能力、系統(tǒng)支持的最大用戶數(shù)、最大業(yè)務(wù)處理量、數(shù)據(jù)量變化幅度、系統(tǒng)的性能瓶頸等狀態(tài)信息,分析如何提高軟件性能,以確保應(yīng)用系統(tǒng)能夠穩(wěn)健可靠的持續(xù)服務(wù)。6.1.1性能測試的概念14軟件性能的關(guān)注角度——從系統(tǒng)開發(fā)人員角度分析:軟件性能不僅包括系統(tǒng)用戶、系統(tǒng)管理員所關(guān)注的內(nèi)容,還特別關(guān)注制約系統(tǒng)整體性能的內(nèi)部因素,如系統(tǒng)軟件架構(gòu)、代碼結(jié)構(gòu)及算法復(fù)雜度、數(shù)據(jù)庫結(jié)構(gòu)等對軟件性能的影響,并分析可能造成軟件性能瓶頸的致因,通過對系統(tǒng)整體架構(gòu)和軟件內(nèi)容結(jié)構(gòu)的綜合規(guī)劃和設(shè)計(jì),改進(jìn)和完善應(yīng)用系統(tǒng)內(nèi)部因素對軟件性能的影響。6.1.1性能測試的概念15軟件性能的評價指標(biāo):目前,軟件性能的評價指標(biāo)的分類方法很多,根據(jù)應(yīng)用系統(tǒng)所處的環(huán)境結(jié)構(gòu)可將其分為:Web資源性能指標(biāo)、服務(wù)器性能指標(biāo)、中間件性能指標(biāo)、數(shù)據(jù)庫性能指標(biāo)、網(wǎng)絡(luò)性能指標(biāo)和其他性能指標(biāo)。6.1.1性能測試的概念16軟件性能的評價指標(biāo):此外,軟件系統(tǒng)的性能還可以運(yùn)用性能模型對軟件的性能進(jìn)行評價。典型的性能度量指標(biāo)有響應(yīng)時間、系統(tǒng)吞吐量、系統(tǒng)資源利用率、并發(fā)用戶數(shù)目、TPS、點(diǎn)擊率、網(wǎng)絡(luò)流量統(tǒng)計(jì)、標(biāo)準(zhǔn)偏差、資源請求隊(duì)列長度等指標(biāo)。6.1.1性能測試的概念17響應(yīng)時間:響應(yīng)時間也稱為等待時間,指用戶感受到的軟件系統(tǒng)為其服務(wù)所耗費(fèi)的時間。不同類型系統(tǒng)的響應(yīng)時間(1)單機(jī)系統(tǒng)響應(yīng)時間(2)C/S架構(gòu)系統(tǒng)響應(yīng)時間(3)B/S架構(gòu)系統(tǒng)響應(yīng)時間單機(jī)系統(tǒng)響應(yīng)時間單機(jī)系統(tǒng)指運(yùn)行在單獨(dú)計(jì)算機(jī)或移動終端上的軟件系統(tǒng),例如Photoshop,office等。此類軟件的響應(yīng)時間主要取決于運(yùn)行軟件的計(jì)算機(jī)當(dāng)前的資源占用情況,在資源比較空閑的情況下,就是計(jì)算機(jī)運(yùn)行該軟件程序需要的處理時間。6.1.1性能測試的概念C/S架構(gòu)系統(tǒng)響應(yīng)時間C/S架構(gòu)指客戶端/服務(wù)器系統(tǒng),其中客戶端程序運(yùn)行在用戶的計(jì)算機(jī)或移動終端上,客戶端程序通過訪問服務(wù)器獲取相應(yīng)功能結(jié)果的軟件系統(tǒng),例如QQ、微信、Foxmail等。此類軟件的響應(yīng)時間主要包含客戶端執(zhí)行時間、網(wǎng)絡(luò)通信時間和服務(wù)器端的響應(yīng)時間。以QQ登錄為例,用戶執(zhí)行QQ后,輸入用戶名和密碼,單擊“登錄”按鈕,到登錄成功顯示好友列表窗口為止的時間就是軟件的登錄響應(yīng)時間,該時間可以分解為計(jì)算機(jī)執(zhí)行QQ客戶端程序時間+登錄信息網(wǎng)絡(luò)傳輸時間+服務(wù)器端處理登錄請求時間+好友列表返回時網(wǎng)絡(luò)傳輸時間等部分。6.1.1性能測試的概念B/S架構(gòu)系統(tǒng)響應(yīng)時間B/S架構(gòu)指瀏覽器/服務(wù)器系統(tǒng),此類系統(tǒng)將核心功能集中到服務(wù)器端,客戶端以瀏覽器作為統(tǒng)一系統(tǒng)入口,以網(wǎng)頁的方式訪問系統(tǒng)功能,如淘寶、京東、趕集等。此類軟件的響應(yīng)時間就是從網(wǎng)頁上點(diǎn)擊某個網(wǎng)頁鏈接,到頁面完全在瀏覽器里展現(xiàn)出來的時間。以在淘寶上查詢“手機(jī)”商品為例,當(dāng)用戶在淘寶網(wǎng)站首頁的搜索欄中輸入了“手機(jī)”后,單擊“查詢”按鈕,到查出來的手機(jī)結(jié)果顯示在瀏覽器頁面中為止的時間就是軟件的查詢響應(yīng)時間,該時間可以分解為查詢請求網(wǎng)絡(luò)傳輸時間+服務(wù)器端處理查詢請求時間+查詢結(jié)果返回網(wǎng)絡(luò)傳輸時間+查詢結(jié)果在瀏覽器中打開時間。6.1.1性能測試的概念系統(tǒng)響應(yīng)時間定義方法不同類型功能的響應(yīng)時間:登錄、增加、刪除、修改、統(tǒng)計(jì)、查詢、圖形顯示、交易等。定義響應(yīng)時間考慮兩方面因素:功能類型和用戶需求。不同忙閑情況下的響應(yīng)時間:閑時響應(yīng)時間:較少用戶訪問情況下,體現(xiàn)系統(tǒng)最快響應(yīng)時間要求。忙時響應(yīng)時間:正常訪問情況下,體現(xiàn)系統(tǒng)平均響應(yīng)時間要求。峰時響應(yīng)時間:最大訪問量情況下,體現(xiàn)系統(tǒng)最差響應(yīng)時間要求。6.1.1性能測試的概念閑時忙時峰時忙時峰時6.1.1性能測試的概念典型響應(yīng)時間定義:登錄閑時響應(yīng)時間小于3S;登錄忙時響應(yīng)時間小于5S;登錄峰時響應(yīng)時間小于8S;查詢商品忙時響應(yīng)時間小于10S;訂單支付忙時響應(yīng)時間小于5S。6.1.1性能測試的概念6.1.1性能測試的概念24并發(fā)用戶數(shù):并發(fā)用戶數(shù)是指在特定時間內(nèi),系統(tǒng)能夠同時處理的用戶請求的數(shù)目。該性能指標(biāo)直接體現(xiàn)了軟件系統(tǒng)(服務(wù)端)承受最大的并發(fā)訪問的能力,通常用并發(fā)用戶數(shù)請求/秒來衡量。并發(fā)用戶數(shù):指系統(tǒng)能夠同時處理的用戶請求的數(shù)目,也可以理解為同時向系統(tǒng)提交請求的用戶數(shù)目。注冊用戶數(shù):指系統(tǒng)中全部注冊用戶的數(shù)量。在線用戶數(shù):指在相同時間段內(nèi)都登錄了系統(tǒng),并在系統(tǒng)中進(jìn)行操作的用戶數(shù)量。6.1.1性能測試的概念舉例:很多網(wǎng)球運(yùn)動員在一面墻壁上練習(xí)打球總的網(wǎng)球運(yùn)動員——注冊用戶正在練習(xí)的網(wǎng)球運(yùn)動員——在線用戶多個幾乎同時擊中墻壁的球——并發(fā)訪問發(fā)出并發(fā)訪問的用戶——并發(fā)用戶6.1.1性能測試的概念假設(shè)有一個電子商務(wù)網(wǎng)站,注冊用戶為20萬人,在某個時刻,登錄用戶1萬人,這些用戶有的在瀏覽商品信息,有的在提交訂單,有的在進(jìn)行支付,其中有100個用戶在相同時刻向服務(wù)器提交了不同的請求。在這個業(yè)務(wù)場景下,注冊用戶數(shù)為20萬,在線用戶數(shù)為1萬,而并發(fā)用戶數(shù)為100。6.1.1性能測試的概念并發(fā)用戶數(shù)刻畫的是某一時刻向系統(tǒng)同時提交請求的用戶數(shù)量,只是系統(tǒng)某個瞬時狀態(tài)的描述,并不能完全體現(xiàn)系統(tǒng)的性能表現(xiàn)。為了更加精確的描述系統(tǒng)性能指標(biāo),一般可以使用平均并發(fā)用戶數(shù)和最大并發(fā)用戶數(shù)來刻畫系統(tǒng)性能。平均并發(fā)用戶數(shù):指在系統(tǒng)正常訪問量情況下的并發(fā)用戶數(shù)。反映了系統(tǒng)某個時刻的用戶訪問情況,并不反映系統(tǒng)的性能情況;最大并發(fā)用戶數(shù):指在峰值訪問情況下的并發(fā)用戶數(shù)。反映了系統(tǒng)的處理能力,往往作為一項(xiàng)重要的性能指標(biāo)在需求分析時進(jìn)行定義。6.1.1性能測試的概念峰時的判斷:(1)系統(tǒng)響應(yīng)時間達(dá)到了峰值響應(yīng)時間,即系統(tǒng)的響應(yīng)時間已經(jīng)達(dá)到了用戶能夠接受的上限。(2)系統(tǒng)服務(wù)器資源利用率已經(jīng)達(dá)到了上限,即服務(wù)器的CPU利用率、內(nèi)存利用率等指標(biāo)已經(jīng)達(dá)到了需求規(guī)定的上限。(3)系統(tǒng)請求成功率,即成功請求數(shù)/總請求數(shù)。當(dāng)系統(tǒng)壓力過大時,某些用戶請求就會執(zhí)行失敗,如果失敗率過高就說明系統(tǒng)已經(jīng)達(dá)到了處理能力的上限,所以可以根據(jù)成功率來判斷是否已經(jīng)達(dá)到了最大并發(fā)用戶數(shù)。6.1.1性能測試的概念6.1.1性能測試的概念30吞吐量:吞吐量指單位時間內(nèi)系統(tǒng)處理的客戶端請求數(shù)量,體現(xiàn)系統(tǒng)的整體處理能力。RPS:請求數(shù)/秒,描述系統(tǒng)每秒能夠處理的最大請求數(shù)量。PPS:頁面數(shù)/秒,描述系統(tǒng)每秒能夠顯示的頁面數(shù)量。PV:頁面數(shù)/天,描述系統(tǒng)每天總的PageView數(shù)量。TPS:事務(wù)/秒,描述系統(tǒng)每秒能夠處理的事務(wù)數(shù)量。QPS:查詢/秒,描述系統(tǒng)每秒能夠處理的查詢請求數(shù)量。6.1.1性能測試的概念31資源利用率:資源利用率是指對系統(tǒng)各不同資源的使用程度,如服務(wù)器的CPU、內(nèi)存、磁盤、網(wǎng)絡(luò)帶寬等資源的利用率,通過分析這些數(shù)據(jù)就可評估系統(tǒng)對資源的要求和可能出現(xiàn)的瓶頸,是分析系統(tǒng)性能指標(biāo)進(jìn)而改善性能的主要依據(jù),常用所占資源的最大可用量的百分比來衡量。6.1.1性能測試的概念32影響軟件性能的因素:一個軟件系統(tǒng)的性能表現(xiàn)受到的主要影響因素有:硬件設(shè)施(部署結(jié)構(gòu)、機(jī)器配置),網(wǎng)絡(luò)環(huán)境(客戶端帶寬、服務(wù)器端帶寬),操作系統(tǒng)(類型、版本、參數(shù)配置),中間件(類型、版本、參數(shù)配置),應(yīng)用程序(性能),并發(fā)用戶數(shù)(系統(tǒng)當(dāng)前訪問狀態(tài)),系統(tǒng)數(shù)據(jù)量(系統(tǒng)數(shù)據(jù)量大?。┑鹊?。如果系統(tǒng)中哪一個環(huán)節(jié)出現(xiàn)了性能瓶頸,都會嚴(yán)重影響系統(tǒng)的運(yùn)行性能。6.1.1性能測試的概念33影響軟件性能的因素:上圖為某Web信息系統(tǒng)的部署結(jié)構(gòu):Web服務(wù)器(1臺):WebServer服務(wù)器程序及頁面應(yīng)用程序應(yīng)用服務(wù)器(一組4臺):tomcat應(yīng)用服務(wù)器中間件及系統(tǒng)后臺處理邏輯程序數(shù)據(jù)庫服務(wù)器(1臺):數(shù)據(jù)庫服務(wù)器中部署Mysql數(shù)據(jù)庫系統(tǒng)存儲系統(tǒng)數(shù)據(jù)。6.1.1性能測試的概念34影響軟件性能的因素:客戶端計(jì)算機(jī)硬件配置;客戶端并發(fā)執(zhí)行程序情況;瀏覽器軟件性能;客戶端網(wǎng)絡(luò)帶寬;服務(wù)器端硬件配置;Web服務(wù)器軟件性能;系統(tǒng)緩存機(jī)制;服務(wù)器端網(wǎng)絡(luò)帶寬;當(dāng)前系統(tǒng)的并發(fā)用戶數(shù)服務(wù)器端硬件配置;應(yīng)用服務(wù)器軟件性能;應(yīng)用軟件性能;當(dāng)前系統(tǒng)的并發(fā)用戶數(shù)服務(wù)器端硬件配置;數(shù)據(jù)庫服務(wù)器軟件性能;數(shù)據(jù)庫設(shè)計(jì)方案的合理性;數(shù)據(jù)庫訪問語句的性能;數(shù)據(jù)量的大??;當(dāng)前系統(tǒng)的并發(fā)用戶數(shù)6.1.1性能測試的概念35軟件性能測試:軟件性能測試就是用來測試軟件在系統(tǒng)中的運(yùn)行性能,性能測試可以發(fā)生在各個測試階段,但只有在系統(tǒng)測試階段,才能檢查一個系統(tǒng)的真正性能。目前,業(yè)界對軟件性能測試的概念還沒有形成統(tǒng)一的描述,不同研究者從不同角度給出了軟件性能測試的相關(guān)定義。6.1.1性能測試的概念36軟件性能測試——從軟件工程角度:軟件性能測試是為了檢驗(yàn)系統(tǒng)或系統(tǒng)部件是否達(dá)到需求規(guī)格說明中規(guī)定的各類性能指標(biāo),并滿足一些性能相關(guān)的約束和限制條件,它必須對系統(tǒng)或系統(tǒng)部件具有的性能(例如,速度、精度、頻率)做出規(guī)定的要求。6.1.1性能測試的概念37軟件性能測試——從軟件測試活動角度:軟件性能測試是指通過自動化的測試工具模擬多種正常、峰值以及異常負(fù)載條件來對系統(tǒng)的各項(xiàng)性能指標(biāo)進(jìn)行的測試活動。6.1.1性能測試的概念38軟件性能測試——從軟件測試生命周期角度:軟件性能測試是通過模擬真實(shí)用戶的操作,借助自動化測試工具和性能測試指標(biāo)驗(yàn)證系統(tǒng)性能是否符合用戶預(yù)期的需求,發(fā)現(xiàn)性能瓶頸,報(bào)告并評估系統(tǒng)整體性能而進(jìn)行的測試。6.1.1性能測試的概念39軟件性能測試內(nèi)容:(1)壓力測試:通過確定一個系統(tǒng)的瓶頸或者不能接受的性能點(diǎn),來獲得系統(tǒng)能夠提供的最大使用極限的測試。

(2)負(fù)載測試:確定在各種工作負(fù)載下系統(tǒng)的性能,目標(biāo)是測試當(dāng)負(fù)載逐漸增加時,系統(tǒng)各項(xiàng)性能指標(biāo)的變化情況。負(fù)載測試通過模擬真實(shí)環(huán)境對軟件應(yīng)用程序和支撐架構(gòu)進(jìn)行分析,從而確定系統(tǒng)的真實(shí)性能。6.1.1性能測試的概念40軟件性能測試內(nèi)容:(3)強(qiáng)度測試:確定在系統(tǒng)資源特別低的條件下軟件系統(tǒng)的運(yùn)行情況。

(4)容量測試:在用戶可接受的響應(yīng)范圍內(nèi),確定系統(tǒng)可處理同時在線的最大用戶數(shù)。

6.1.1性能測試的概念41軟件性能測試內(nèi)容:(5)可靠性測試:可靠性測試是當(dāng)系統(tǒng)在一定的業(yè)務(wù)壓力下,讓系統(tǒng)持續(xù)運(yùn)行一段時間,觀察系統(tǒng)是否達(dá)到要求的穩(wěn)定性,此處強(qiáng)調(diào)在一定業(yè)務(wù)壓力下持續(xù)運(yùn)行的能力,可靠性測試必須給出一個明確的要求,比如可以施加讓CPU資源保持在70%~90%使用率的壓力,連續(xù)對系統(tǒng)測試8個小時,然后根據(jù)結(jié)果分析系統(tǒng)是否穩(wěn)定。6.1.1性能測試的概念42軟件性能測試內(nèi)容:(6)穩(wěn)定性測試:通過給系統(tǒng)加載一定的業(yè)務(wù)壓力,讓應(yīng)用持續(xù)運(yùn)行一段時間,測試系統(tǒng)在這種條件下能否穩(wěn)定運(yùn)行。(7)健壯性測試:是指測試軟件在異常情況下能正常運(yùn)行的能力的測試,此處所指的異常情況包括突發(fā)故障、過多的用戶數(shù)以及資源過少等情況。6.1.1性能測試的概念43軟件性能測試內(nèi)容:(8)并發(fā)測試:并發(fā)性能測試的過程是一個負(fù)載測試和壓力測試的過程,即逐漸增加負(fù)載,直到系統(tǒng)的瓶頸或者不能接受的性能點(diǎn),通過綜合分析交易執(zhí)行指標(biāo)和資源監(jiān)控指標(biāo)來確定系統(tǒng)并發(fā)性能的過程。它重點(diǎn)關(guān)注多個用戶同時訪問同一個應(yīng)用、模塊或者數(shù)據(jù)時是否存在死鎖或者其它性能問題,如內(nèi)存泄漏、線程鎖、資源爭用等問題。6.1.1性能測試的概念44軟件性能測試內(nèi)容:(9)配置測試:配置測試是通過對被測系統(tǒng)的軟硬件環(huán)境的調(diào)整,了解各種不同環(huán)境對性能影響的程度,從而找到測試各項(xiàng)資源的最優(yōu)分配方案。配置測試主要包括服務(wù)器硬件資源配置和中間件、數(shù)據(jù)庫等相關(guān)軟件的參數(shù)配置,是系統(tǒng)調(diào)優(yōu)的重要依據(jù)。6.1.1性能測試的概念45軟件性能測試內(nèi)容:(10)疲勞強(qiáng)度測試:以系統(tǒng)穩(wěn)定運(yùn)行情況下能夠支持的最大并發(fā)用戶數(shù)或者日常運(yùn)行用戶數(shù),持續(xù)執(zhí)行一段時間業(yè)務(wù),通過綜合分析交易執(zhí)行指標(biāo)和資源監(jiān)控指標(biāo)來確定系統(tǒng)處理最大工作強(qiáng)度性能的過程。6.1.1性能測試的概念46軟件性能測試內(nèi)容:(11)大數(shù)據(jù)量測試:大數(shù)據(jù)量測試側(cè)重點(diǎn)在于數(shù)據(jù)的量上,包括獨(dú)立的數(shù)據(jù)量測試和綜合數(shù)據(jù)量測試。獨(dú)立的數(shù)據(jù)量測試針對某些系統(tǒng)存儲,傳輸、統(tǒng)計(jì)、查詢等業(yè)務(wù)進(jìn)行大數(shù)據(jù)量測試,而綜合數(shù)據(jù)量測試、一般和壓力性能測試、負(fù)載性能測試、疲勞性能測試相結(jié)合。大數(shù)據(jù)量測試的關(guān)鍵是測試數(shù)據(jù)的準(zhǔn)備,可以依靠工具準(zhǔn)備測試數(shù)據(jù)。6.1.1性能測試的概念47軟件性能測試內(nèi)容:(12)兼容性測試:是指在特定的或不同的硬件、網(wǎng)絡(luò)環(huán)境和操作系統(tǒng)平臺上、不同的應(yīng)用軟件之間,驗(yàn)證軟件系統(tǒng)能否正常地運(yùn)行,以及能否正確存取原先版本的用戶數(shù)據(jù)所進(jìn)行的測試。兼容性測試通??梢苑譃槿箢悾河布嫒菪詼y試、軟件兼容性測試和數(shù)據(jù)兼容性測試。6.1.2性能測試的目標(biāo)48軟件性能測試的總體目標(biāo):軟件性能測試的總體目標(biāo)在于通過模擬真實(shí)負(fù)載,確認(rèn)軟件系統(tǒng)是否可以達(dá)到用戶使用需求,并找出可能存在的性能瓶頸或缺陷;收集測試結(jié)果并分析產(chǎn)生缺陷的原因,提交總結(jié)報(bào)告,改進(jìn)、優(yōu)化系統(tǒng)性能,從而保證程序在實(shí)際運(yùn)行中能夠提供良好和可靠的服務(wù)。6.1.3常用性能測試方法49從測試技術(shù)角度劃分:軟件性能測試方法從測試過程中采用的技術(shù)不同,可以分為4種方法:基準(zhǔn)測試方法、性能規(guī)劃測試方法、滲入測試方法和峰谷測試方法。6.1.3常用性能測試方法50從測試邏輯和應(yīng)用角度劃分:針對不同的應(yīng)用類型和側(cè)重點(diǎn),目前主要有4種軟件性能測試方法:虛擬用戶方法、WUS方法、對象驅(qū)動方法和目標(biāo)驅(qū)動方法。6.1.3常用性能測試方法51從測試類型角度劃分:依據(jù)軟件性能測試的不同測試類型或目標(biāo)選擇測試方法及測試指標(biāo),進(jìn)而設(shè)計(jì)測試場景,從這個角度對軟件性能測試方法可以劃分為負(fù)載測試、壓力測試、容量測試、疲勞強(qiáng)度測試、配置測試、大數(shù)據(jù)量測試等等。6.1.3常用性能測試方法52性能測試方法選取策略:選取何種測試方法取決于業(yè)務(wù)需求、開發(fā)周期和應(yīng)用程序的生命周期。6.2軟件性能測試過程53軟件性能測試過程應(yīng)遵循的一般測試過程為:測試前期準(zhǔn)備、測試需求分析與提取、測試計(jì)劃與用例、測試設(shè)計(jì)與開發(fā)、測試執(zhí)行與監(jiān)管、測試分析與優(yōu)化、測試報(bào)告與評審。6.2.1測試前期準(zhǔn)備54軟件性能測試前期準(zhǔn)備階段的主要活動包括驗(yàn)證系統(tǒng)基礎(chǔ)功能、組建性能測試團(tuán)隊(duì)及了解各類性能測試工具。6.2.2測試需求分析與提取55

測試需求分析是性能測試過程中非常重要的一個環(huán)節(jié),性能測試需求分析的好壞直接關(guān)系著測試的充分性和測試結(jié)果的有效性。測試需求分析主要包括性能測試需求獲取、分析、提取以及性能測試指標(biāo)的評估和確定。6.2.2測試需求分析與提取56性能測試需求獲取:性能測試需求除了需要測試人員非常了解系統(tǒng)的業(yè)務(wù)知識,還需要測試人員具有深厚的性能測試技術(shù)和知識。性能測試需求要從各種招標(biāo)文檔、需求文檔、設(shè)計(jì)文檔中,以及與客戶、項(xiàng)目組人員溝通交流的信息中獲取和分析。6.2.2測試需求分析與提取57性能測試需求分析:為了能夠確定系統(tǒng)測試指標(biāo),可以從按系統(tǒng)的整體架構(gòu)(如前端:并發(fā)用戶數(shù),服務(wù)端:系統(tǒng)處理能力和硬件選型等,網(wǎng)絡(luò)端:網(wǎng)絡(luò)流量和帶寬)、軟件結(jié)構(gòu)(系統(tǒng)耗時功能模塊、核心功能模塊等)、用戶訪問量、系統(tǒng)業(yè)務(wù)量和系統(tǒng)處理能力、系統(tǒng)存儲能力和數(shù)據(jù)量等方面綜合分析性能測試的特定條件和需求點(diǎn)。6.2.2測試需求分析與提取58性能測試點(diǎn)的提?。盒阅軠y試點(diǎn)的提取應(yīng)根據(jù)獲取和分析的性能需求內(nèi)容,針對發(fā)生頻率非常高(例如:訂票系統(tǒng)的登錄、查詢和訂票等業(yè)務(wù),占業(yè)務(wù)總量90%以上)、關(guān)鍵程度非常高(如支付功能等)和資源占用非常嚴(yán)重的模塊重點(diǎn)提取出性能測試要點(diǎn)。而且,性能需求點(diǎn)和測試要點(diǎn)的描述要簡潔、準(zhǔn)確、一致,性能測試需求指定的條件要清楚、具體。6.2.2測試需求分析與提取59性能測試指標(biāo)的評估和確定:性能測試需要有明確的性能指標(biāo),用以評估測試結(jié)果,并決定測試的終止標(biāo)準(zhǔn)。通常根據(jù)性能測試要點(diǎn)確定測試指標(biāo)。得到被測試系統(tǒng)的性能指標(biāo)后,還要將性能測試指標(biāo)交給測試組或項(xiàng)目組負(fù)責(zé)人,組織相關(guān)人員進(jìn)行評審確定,可以盡早發(fā)現(xiàn)問題并及時糾正,防止影響后續(xù)的測試活動。6.2.3測試計(jì)劃與用例60性能測試計(jì)劃:測試計(jì)劃階段用于生成指導(dǎo)整個測試執(zhí)行過程的計(jì)劃方案,有效的測試計(jì)劃是測試工作成功的基礎(chǔ)。測試計(jì)劃文檔應(yīng)對測試的背景和原因、測試的目標(biāo)、測試的內(nèi)容和范圍、測試用例的設(shè)計(jì)、測試的進(jìn)度、測試的策略及可能出現(xiàn)的測試風(fēng)險等內(nèi)容進(jìn)行詳細(xì)的描述,是指導(dǎo)后續(xù)工作的規(guī)范性文件。6.2.3測試計(jì)劃與用例61性能測試用例設(shè)計(jì):在測試計(jì)劃階段,測試用例的設(shè)計(jì)是一項(xiàng)非常重要的工作,它是指導(dǎo)后續(xù)腳本開發(fā)、場景方案設(shè)計(jì)與執(zhí)行的依據(jù)。性能測試用例模板根據(jù)實(shí)際需求多種多樣,通常,一個性能測試用例主要包含測試用例編號、用例名稱、測試目的、前提與約束、測試性能指標(biāo)、操作步驟、預(yù)期結(jié)果、設(shè)計(jì)人員、設(shè)計(jì)時間等要素。6.2.3測試計(jì)劃與用例62性能測試用例設(shè)計(jì)模版:

見教材P-166,表6-16.2.4測試設(shè)計(jì)與開發(fā)63

測試設(shè)計(jì)是對測試策略的進(jìn)一步深化,主要對測試執(zhí)行過程做出規(guī)定,并形成測試執(zhí)行方案。測試設(shè)計(jì)主要包括測試環(huán)境設(shè)計(jì)、測試數(shù)據(jù)設(shè)計(jì)、測試場景設(shè)計(jì),其中測試場景又包括功能與用戶分布、被測功能執(zhí)行與驗(yàn)證、監(jiān)測指標(biāo)等內(nèi)容。測試場景設(shè)計(jì)是測試設(shè)計(jì)中的主要內(nèi)容。6.2.4測試設(shè)計(jì)與開發(fā)64測試工具的引入:軟件性能測試必須借助一定的輔助工具,這些工具可以外購、也可自主開發(fā)。目前,國內(nèi)外出現(xiàn)了大量的軟件性能測試工具,且大多提供豐富的自主開發(fā)功能和環(huán)境,可以實(shí)現(xiàn)多種測試目的。在測試開始前,應(yīng)根據(jù)被測試軟件的結(jié)構(gòu)和系統(tǒng)特征,并考慮成本、人員、進(jìn)度等因素,選擇外購或自主開發(fā)測試工具,并做好培訓(xùn)等相關(guān)的技術(shù)準(zhǔn)備。6.2.4測試設(shè)計(jì)與開發(fā)65測試環(huán)境設(shè)計(jì):測試環(huán)境設(shè)計(jì)主要是確定測試時所使用的硬件、網(wǎng)絡(luò)、系統(tǒng)軟件的環(huán)境。測試環(huán)境最好與實(shí)際的軟件運(yùn)行環(huán)境相一致。但在難以實(shí)現(xiàn)時,應(yīng)采用和實(shí)際環(huán)境相同的架構(gòu),但設(shè)備的配置可略低于實(shí)際環(huán)境的方式構(gòu)建模擬環(huán)境。系統(tǒng)軟件的配置應(yīng)與實(shí)際運(yùn)行環(huán)境完全相同?;驹瓌t是避免因環(huán)境問題引起性能測試結(jié)果的準(zhǔn)確性。6.2.4測試設(shè)計(jì)與開發(fā)66測試數(shù)據(jù)設(shè)計(jì):測試數(shù)據(jù)設(shè)計(jì)主要是為被測軟件準(zhǔn)備相應(yīng)的基礎(chǔ)數(shù)據(jù)和軟件運(yùn)行所需要的數(shù)據(jù),尤其是數(shù)據(jù)庫中的數(shù)據(jù)量。數(shù)據(jù)量的多少會嚴(yán)重影響軟件的性能,為進(jìn)行測試,可采用人工方式,在數(shù)據(jù)庫中生成一定的數(shù)據(jù)量。數(shù)據(jù)量的規(guī)模應(yīng)與測試環(huán)境的配置相適應(yīng),當(dāng)在實(shí)際環(huán)境中進(jìn)行測試時,數(shù)據(jù)量應(yīng)與實(shí)際運(yùn)行時的規(guī)模相一致,當(dāng)使用模擬環(huán)境時,數(shù)據(jù)量應(yīng)等比例降低其規(guī)模。6.2.4測試設(shè)計(jì)與開發(fā)67測試場景設(shè)計(jì):測試場景主要是模擬軟件系統(tǒng)實(shí)際應(yīng)用場景,包括測試時執(zhí)行的業(yè)務(wù),每種業(yè)務(wù)執(zhí)行的用戶數(shù)量,模擬的總用戶數(shù)、用戶執(zhí)行方式、執(zhí)行過程中的相關(guān)參數(shù)設(shè)定等,還應(yīng)有所要關(guān)注或監(jiān)測的資源指標(biāo)等,如設(shè)備資源利用率、響應(yīng)速度、吞吐量等。不同的測試目的,確定的測試場景存在不同。6.2.4測試設(shè)計(jì)與開發(fā)68測試腳本的開發(fā):測試腳本開發(fā)主要指開發(fā)和用例相關(guān)的測試程序。根據(jù)測試執(zhí)行方案中制定的測試場景和選定的測試工具準(zhǔn)備測試腳本。首先,熟悉場景所對應(yīng)的功能,并確定測試的功能運(yùn)行無誤;其次,通過用戶提供的資料,確定待測系統(tǒng)所使用的通訊協(xié)議,然后根據(jù)業(yè)務(wù)場景錄制或編寫相關(guān)測試腳本,保證所準(zhǔn)備的腳本正確無誤的運(yùn)行,并能反映實(shí)際的應(yīng)用情況。6.2.5測試執(zhí)行與監(jiān)管69搭建測試執(zhí)行環(huán)境:在執(zhí)行階段,首先根據(jù)測試執(zhí)行方案搭建測試執(zhí)行環(huán)境。按照測試執(zhí)行方案中的要求,搭建一個獨(dú)立、無毒、逼真的軟、硬件環(huán)境及網(wǎng)絡(luò)環(huán)境,并安裝調(diào)試被測軟件和測試工具。6.2.5測試執(zhí)行與監(jiān)管70部署測試場景:根據(jù)制定的測試方案,在測試工具中部署、配置各測試場景,包括虛擬用戶組及其對應(yīng)的用戶數(shù),虛擬用戶組對應(yīng)的運(yùn)行參數(shù),以及用戶增長方式、測試循環(huán)方式、用戶退出方式,需要監(jiān)視的性能指標(biāo)等。6.2.5測試執(zhí)行與監(jiān)管71執(zhí)行及監(jiān)管測試場景:測試場景布置完畢后,開始執(zhí)行測試。測試中測試人員要監(jiān)視測試運(yùn)行情況。按照測試執(zhí)行方案,執(zhí)行所有的測試場景,運(yùn)行正確且結(jié)束后,及時匯總測試結(jié)果,為下一步結(jié)果分析做準(zhǔn)備。6.2.6測試分析與優(yōu)化72

測試結(jié)果分析是性能測試中的一個重要部分。測試目的不同、關(guān)注的性能指標(biāo)不同,結(jié)果分析方法也不同。此處主要介紹一下常見的分析方法,主要包括硬件資源相關(guān)分析方法、軟件相關(guān)分析和測試結(jié)果相關(guān)分析。另外,系統(tǒng)性能調(diào)優(yōu)是一項(xiàng)非常困難和復(fù)雜的工作,并對一般性能調(diào)優(yōu)的步驟做了簡單介紹。6.2.6測試分析與優(yōu)化73硬件相關(guān)分析:硬件分析主要包括內(nèi)存、CPU、磁盤等硬件的分析。首先分析內(nèi)存,其次是CPU,最后是磁盤。通過硬件分析,確定硬件是否正常,是否是影響軟件性能的主要因素。6.2.6測試分析與優(yōu)化74軟件相關(guān)分析:軟件分析主要包括中間件、應(yīng)用服務(wù)器、數(shù)據(jù)庫等系統(tǒng)軟件的分析。以IIS服務(wù)器、SQL

Server數(shù)據(jù)庫為例,IIS服務(wù)器分析時主要關(guān)注請求數(shù)/秒、請求執(zhí)行情況、請求執(zhí)行時間、請求隊(duì)列情況及緩存使用情況等指標(biāo)。SQL

Server分析主要關(guān)注緩沖區(qū)命中率、死鎖、鎖等待、事務(wù)類型和數(shù)量等指標(biāo)。通過軟件分析,確定系統(tǒng)軟件的工作狀況以及系統(tǒng)軟件對被測軟件的影響。6.2.6測試分析與優(yōu)化75性能測試結(jié)果分析:首先,查看運(yùn)行結(jié)果以及運(yùn)行過程中的日志信息,以確定運(yùn)行過程中是否存在錯誤或異常。若存在,則需要進(jìn)一步分析,并根據(jù)相關(guān)信息確定產(chǎn)生異常的原因。然后,分析性能測試執(zhí)行結(jié)果,以確定所關(guān)注的性能指標(biāo)是否符合要求。測試結(jié)果分析是一項(xiàng)復(fù)雜而又重要的工作,涉及的內(nèi)容較多,需要根據(jù)實(shí)際測試情況來進(jìn)行分析。最后根據(jù)測試分析結(jié)果形成測試報(bào)告。6.2.6測試分析與優(yōu)化76系統(tǒng)性能調(diào)優(yōu):軟件產(chǎn)品的性能調(diào)優(yōu)涉及的因素多種多樣,在性能調(diào)優(yōu)時不僅需要性能測試工程師,還需要數(shù)據(jù)庫工程師、軟件開發(fā)工程師和運(yùn)維工程師一起配合才能完成。6.2.6測試分析與優(yōu)化77系統(tǒng)性能調(diào)優(yōu)步驟:(1)查找造成性能瓶頸的根本原因,確定問題所在。(2)在發(fā)現(xiàn)問題的基礎(chǔ)上,排除導(dǎo)致問題的根本原因。(3)通過回歸測試,驗(yàn)證性能問題是否已經(jīng)被完全解決。性能調(diào)優(yōu)是一個循環(huán)反饋的過程,以實(shí)現(xiàn)系統(tǒng)性能調(diào)優(yōu)的目的。6.2.7測試報(bào)告與評審78

測試報(bào)告與測試評估階段主要是根據(jù)性能測試分析結(jié)果編制測試報(bào)告。此外,還要對系統(tǒng)的性能作出評價,且測試結(jié)果應(yīng)包括結(jié)果數(shù)據(jù)。6.3性能測試工具79性能測試尤其適合使用自動化測試工具:手動測試難以模擬多用戶并發(fā)訪問;手動測試難以記錄準(zhǔn)確的系統(tǒng)性能指標(biāo);手動測試難以持續(xù)很長時間;手動測試難以支持調(diào)優(yōu)的需要。6.3.1性能測試工具簡介80目前,國內(nèi)外較流行的性能測試工具較多,主要商業(yè)性能測試工具如HP-Mercury公司的LoadRunner、Compuware公司的QALoad、IBMRational公司的TeamTest,SGI公司的WebStone、Borland公司的SilkPerformer等;免費(fèi)及開源性能測試工具包括Apache公司的JMeter、Cyrano公司的OpenSTA、微軟的WAS等。6.3.1性能測試工具簡介81性能測試工具的主要功能目標(biāo):能夠模擬用戶使用系統(tǒng)的行為;模擬大量用戶對系統(tǒng)的并發(fā)訪問;采集執(zhí)行過程中的各種性能指標(biāo);報(bào)告系統(tǒng)性能測試結(jié)果。6.3.2性能測試工具的使用82LoadRunner簡介:LoadRunner是一種適用于許多體系架構(gòu)的自動負(fù)載測試工具,從用戶關(guān)注的響應(yīng)時間、吞吐量、并發(fā)用戶和性能計(jì)數(shù)器等方面來衡量系統(tǒng)的性能表現(xiàn),輔助用戶進(jìn)行系統(tǒng)性能的優(yōu)化。LoadRunner通過模擬上千萬用戶實(shí)施并發(fā)負(fù)載及實(shí)時性能監(jiān)測的方式來確認(rèn)和查找問題,優(yōu)化性能和加速應(yīng)用系統(tǒng)的發(fā)布周期。LoadRunner支持廣泛的協(xié)議,擁有良好的操作界面和幫助文檔,是企業(yè)進(jìn)行系統(tǒng)性能測試的有力工具。6.3.2性能測試工具的使用83LoadRunner組成結(jié)構(gòu):三個前臺功能組件:VuGen(虛擬用戶腳本生成器)Controller(測試控制器)Analysis(結(jié)果分析器)兩個后臺組LG(負(fù)載生成器)Proxy(用戶代理)6.3.2性能測試工具的使用84虛擬用戶腳本生成器VuGen:VuGen(VirtualUserGenerator,虛擬用戶腳本生成器)是LoadRunner中用來錄制虛擬用戶腳本的工具。使用VuGen引擎,可以監(jiān)視并記錄客戶端和服務(wù)器直接的通話,讓虛擬用戶模擬實(shí)際的業(yè)務(wù)流程,記錄真正用戶的操作行為,并將其轉(zhuǎn)化為特定的測試腳本語言集合。6.3.2性能測試工具的使用85壓力調(diào)度和監(jiān)控系統(tǒng)Controller:Controller壓力調(diào)度工具可以根據(jù)用戶的場景要求,對整個負(fù)載的過程進(jìn)行設(shè)置,如設(shè)置負(fù)載的方式和周期、不同腳本Vuser的數(shù)量、同步點(diǎn)等操作;同時監(jiān)控系統(tǒng)則可以對各種數(shù)據(jù)庫、應(yīng)用服務(wù)器、數(shù)據(jù)庫的主要性能計(jì)數(shù)器進(jìn)行監(jiān)控。6.3.2性能測試工具的使用86壓力結(jié)果分析工具(Analysis):可以用來輔助進(jìn)行測試結(jié)果的分析。能將監(jiān)控系統(tǒng)獲取的性能計(jì)數(shù)器值生成曲線圖、折線圖等圖表,還能根據(jù)用戶的需求建立不同區(qū)間之間的疊加、關(guān)聯(lián)操作,從而提供從各方面揭示壓力測試結(jié)果的能力。壓力結(jié)果分析工具只是提供了各種數(shù)據(jù)統(tǒng)計(jì)不同展現(xiàn)效果,在設(shè)置了性能水平要求的情況下,能夠給出系統(tǒng)性能是否滿足性能要求的判斷。壓力結(jié)果分析工具不能完全替代工程師對結(jié)果的分析,對這些數(shù)據(jù)進(jìn)行分析必須依靠測試工程師對系統(tǒng)性能分析的經(jīng)驗(yàn)和知識。6.3.2性能測試工具的使用87負(fù)載生成器LG:LG(LoadGenerator,負(fù)載生成器)負(fù)責(zé)將VuGen腳本復(fù)制成大量虛擬用戶進(jìn)而對系統(tǒng)生成負(fù)載,是模擬多用戶并發(fā)訪問被測試系統(tǒng)的組件。LG模擬多用戶訪問系統(tǒng)的前提是已經(jīng)具備了虛擬用戶腳本,LG是Controller執(zhí)行過程中調(diào)用的一個后臺功能組件。6.3.2性能測試工具的使用88用戶代理Proxy:虛擬用戶腳本生成器一般通過Proxy方式實(shí)現(xiàn)。設(shè)置一個Proxy作為客戶端和服務(wù)器之間的中介,接受從客戶端發(fā)送的數(shù)據(jù)包,記錄并將其轉(zhuǎn)發(fā)給服務(wù)器端;接受從服務(wù)端返回的數(shù)據(jù)流,記錄并返回給客戶端。LoadRunner中關(guān)鍵概念介紹:1虛擬用戶2VU腳本3場景4事務(wù)5檢查點(diǎn)6思考時間7集合點(diǎn)6.3.2性能測試工具的使用虛擬用戶(VirtualUser,簡稱Vuser):指性能測試過程中執(zhí)行VU腳本以模擬真實(shí)用戶對系統(tǒng)訪問的執(zhí)行實(shí)體。使用LoadRunner進(jìn)行自動化測試時,一個測試客戶機(jī)上可以運(yùn)行很多個Vuser,很方便模擬多用戶對系統(tǒng)的并發(fā)訪問。運(yùn)行Vuser需要占用測試客戶機(jī)的資源,所以當(dāng)測試需要的Vuser數(shù)量非常多時,可以部署多臺測試客戶機(jī),每個測試機(jī)模擬一部分Vuser,協(xié)調(diào)完成系統(tǒng)的性能測試。6.3.2性能測試工具的使用VU腳本(Script):記錄了用戶執(zhí)行系統(tǒng)功能的操作過程,是Vuser執(zhí)行的對象。在進(jìn)行性能測試時,需要根據(jù)測試目標(biāo),制定測試所需要執(zhí)行的業(yè)務(wù)場景,LoadRunner的VuGen組件能夠在用戶執(zhí)行系統(tǒng)功能的過程中,自動完成腳本的錄制,生成記錄用戶操作過程的腳本文件。LoadRunner支持的腳本語言有:Java、C、VisualBasic、VBScript等,默認(rèn)的腳本生成語言為C語言。LoadRunner中還可以通過參數(shù)化、關(guān)聯(lián)等手段對VU腳本進(jìn)行二次開發(fā),提高腳本的靈活性。6.3.2性能測試工具的使用場景(Scenario)是一次性能測試執(zhí)行內(nèi)容的定義,用來模擬真實(shí)用戶是如何產(chǎn)生壓力的。場景中包含所要執(zhí)行的腳本、虛擬用戶、負(fù)載生成器、運(yùn)行過程配置、實(shí)時監(jiān)控等五方面的內(nèi)容。LoadRunner的Controller組件是創(chuàng)建、維護(hù)、執(zhí)行和監(jiān)控場景的管理中心。6.3.2性能測試工具的使用腳本(scripts)定義了測試過程中都要執(zhí)行哪些系統(tǒng)操作;虛擬用戶(virtualusers)定義了測試過程中都有哪些用戶參與加壓測試;負(fù)載生成器數(shù)量(Numberofloadgenerators)定義了測試過程中啟動幾個測試客戶端執(zhí)行虛擬用戶;運(yùn)行時配置(run-timesettings)定義了測試過程中的用戶加載策略,包括加壓策略、減壓策略、執(zhí)行結(jié)束策略等;實(shí)時監(jiān)控(real-timemonitors)定義了測試過程要進(jìn)行監(jiān)控的各項(xiàng)指標(biāo)。6.3.2性能測試工具的使用手動場景在定義場景時,對以上五方面內(nèi)容進(jìn)行手動設(shè)置,來模擬真實(shí)的用戶請求模型。一般情況下,在進(jìn)行性能測試前需要對測試場景進(jìn)行合理的計(jì)劃,在執(zhí)行性能測試之前,將設(shè)計(jì)好的測試場景內(nèi)容手動配置到測試工具中,之后再啟動測試。手動測試是常用的場景配置方法。面向目標(biāo)場景在定義場景時,只需要定義測試要達(dá)到的目標(biāo),包括虛擬用戶數(shù)量、吞吐量、事務(wù)響應(yīng)時間等,在測試執(zhí)行過程中,LoadRunner會根據(jù)這些目標(biāo)自動創(chuàng)建場景,并在運(yùn)行過程中不斷將運(yùn)行結(jié)果和目標(biāo)相比較,以調(diào)整下一步的測試策略。6.3.2性能測試工具的使用事務(wù)(Transaction):提供一種端對端的測量方法,用于測量一個業(yè)務(wù)流程中執(zhí)行一個或多個步驟所花費(fèi)的時間。在錄制的VU腳本中,往往包含用戶在系統(tǒng)中執(zhí)行的一系列的操作(Action),為了精確的獲得某些操作步驟的執(zhí)行時間,就需要將這些操作定義為事務(wù)。可以將事務(wù)理解為一個計(jì)時單位,LoadRunner在運(yùn)行過程中一旦發(fā)現(xiàn)事務(wù)的開始標(biāo)識,就開始計(jì)時,一旦發(fā)現(xiàn)事務(wù)的結(jié)束標(biāo)識,則計(jì)時結(jié)束,這個過程中得到的時間即為一個事務(wù)時間。6.3.2性能測試工具的使用例如在進(jìn)行電子商務(wù)網(wǎng)站性能測試過程中,某個腳本的內(nèi)容包括打開首頁、登錄、查詢商品、加入購物車、結(jié)賬等。在進(jìn)行測試過程中,希望對登錄、查詢商品和結(jié)賬操作的響應(yīng)時間進(jìn)行測試,那么就需要在腳本中將相關(guān)動作定義為事務(wù),這樣在測試過程中就會對每個事務(wù)的執(zhí)行時間進(jìn)行采集。LoadRunner中通過在事務(wù)開始位置插入事務(wù)開始標(biāo)識,在事務(wù)結(jié)束位置插入事務(wù)結(jié)束標(biāo)識,來定義一個完整的事務(wù)。事務(wù)的定義需要根據(jù)測試目標(biāo)進(jìn)行設(shè)計(jì),才能夠在測試過程中得到有效的測試數(shù)據(jù)。6.3.2性能測試工具的使用檢查點(diǎn)(CheckPoint):提供了一種執(zhí)行結(jié)果正確性驗(yàn)證機(jī)制,保證了測試工具對執(zhí)行通過判斷的準(zhǔn)確性。在執(zhí)行性能測試的過程中,執(zhí)行成功率是一項(xiàng)非常重要的指標(biāo),如果多用戶并發(fā)過程中有很多請求失敗,說明系統(tǒng)對業(yè)務(wù)的支撐能力出現(xiàn)了問題。不設(shè)置檢查點(diǎn)的情況下,測試工具只能進(jìn)行粗略的判斷,只要返回結(jié)果不是一些明顯的錯誤(如500、404錯誤等),都認(rèn)為執(zhí)行正確,這樣會給測試帶來很大的誤差。6.3.2性能測試工具的使用如果系統(tǒng)在執(zhí)行過程中需要非常明確的判斷某個操作是否通過,則需要在腳本相應(yīng)的位置添加檢查點(diǎn),并設(shè)置檢查點(diǎn)內(nèi)容。LoadRunner的VuGen組件允許插入文本或圖像檢查點(diǎn),驗(yàn)證返回結(jié)果是否存在指定的文本或者圖像,以判斷執(zhí)行結(jié)果是否正確。6.3.2性能測試工具的使用思考時間(ThinkTime):提供了一種讓VU腳本暫停執(zhí)行(等待一段時間)的機(jī)制,用來模擬實(shí)際用戶在不同操作之間等待時間,以便更加真實(shí)地反映用戶訪問系統(tǒng)的行為規(guī)律。思考時間可以在錄制腳本時自動獲取,也可以在編輯腳本時手動添加,思考時間需要真實(shí)反映用戶典型操作所需要的時間,這樣才能夠更加精確模擬用戶訪問系統(tǒng)的行為。LoadRunner_think_time(8);6.3.2性能測試工具的使用由于LoadRunner在進(jìn)行腳本錄制過程中,只會記錄客戶端與服務(wù)器之間交互的內(nèi)容,用戶在客戶端進(jìn)行的各種操作LoadRunner是不進(jìn)行捕獲和記錄的。例如用戶在客戶端填寫一個表單花了20秒,提交表單時,填寫的數(shù)據(jù)已經(jīng)記錄到腳本中,在腳本回放時,這些數(shù)據(jù)直接就緒,不需要再進(jìn)行輸入,所以填寫并提交表單這個步驟就沒有等待時間了。這就導(dǎo)致了使用虛擬用戶執(zhí)行測試時與實(shí)際用戶執(zhí)行系統(tǒng)功能時情況不符。6.3.2性能測試工具的使用集合點(diǎn)(Rendezvous):集合點(diǎn)(Rendezvous)提供了一種用戶并發(fā)訪問機(jī)制,用來模擬多用戶對系統(tǒng)的并發(fā)訪問。在Vuser腳本需要并發(fā)執(zhí)行的操作前插入集合點(diǎn),配置多個

溫馨提示

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

評論

0/150

提交評論