軟件性能測試總結(jié)_第1頁
軟件性能測試總結(jié)_第2頁
已閱讀5頁,還剩31頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、軟件性能測試總結(jié)第一章軟件性能概述1.1軟件性能基礎(chǔ)1.1.1軟件性能的概念軟件性能是與軟件功能相對應(yīng)的一種非常重要的非功能特性,表明了軟件系統(tǒng)對時間及時性與資源經(jīng)濟(jì)性的要求。對于一個軟件系統(tǒng),運行時執(zhí)行速度越快、占用系統(tǒng)存儲資源及其他資源越少,則軟件性能越好。軟件性能與軟件功能是軟件能力的不同體現(xiàn),以一個人的工作能力來比喻,“功能”是某個人能夠做的事情,“性能”指此人完成這件事情的效率。在功能相同的情況下,性能是衡量事情完成效果的一個重要因素。1.1.2不同角色對軟件性能的理解1)從系統(tǒng)用戶角度看軟件性能系統(tǒng)用戶指實際使用系統(tǒng)功能的人員。系統(tǒng)用戶看到的軟件性能就是軟件的響應(yīng)時間,即當(dāng)用戶在軟

2、件中執(zhí)行一個功能操作后,到軟件把本次操作的結(jié)果完全展現(xiàn)給用戶所消耗的時間。系統(tǒng)響應(yīng)時間的影響因素有:功能的粒度、客戶端網(wǎng)絡(luò)情況、服務(wù)器當(dāng)前忙閑情況等。從系統(tǒng)用戶角度看,軟件響應(yīng)時間越短,系統(tǒng)性能越好。2)從系統(tǒng)運維人員角度看軟件性能系統(tǒng)運維人員指負(fù)責(zé)軟件系統(tǒng)運行維護(hù)的工作人員。運維人員在關(guān)注系統(tǒng)響應(yīng)時間的同時,還需要關(guān)注系統(tǒng)的資源利用率、系統(tǒng)最大容量、系統(tǒng)訪問量變化趨勢、數(shù)據(jù)量增長幅度、系統(tǒng)擴展能力等,并在此基礎(chǔ)上制定合理的系統(tǒng)維護(hù)計劃,以保障系統(tǒng)能夠為用戶提供穩(wěn)定可靠的持續(xù)服務(wù)。運維人員關(guān)注的性能問題:軟件性能描述運維人員關(guān)心的問題服務(wù)器的資源使用情況合理資源利用率嗎應(yīng)用服務(wù)器和數(shù)據(jù)庫服務(wù)器

3、資源利用率的資源使用狀況合理嗎系統(tǒng)容量系統(tǒng)可擴展性系統(tǒng)容量系統(tǒng)可擴展性系統(tǒng)可擴展性系統(tǒng)是否能夠?qū)崿F(xiàn)擴展系統(tǒng)最多能支持多少用戶的訪問系統(tǒng)最大的業(yè)務(wù)處理量是多少系統(tǒng)性能可能的瓶頸在哪里更換哪些設(shè)備能夠提高系統(tǒng)性能系統(tǒng)能否支持7X24小時的業(yè)系統(tǒng)穩(wěn)定性務(wù)訪問3)從系統(tǒng)開發(fā)人員角度看軟件性能系統(tǒng)開發(fā)人員指系統(tǒng)軟件的設(shè)計和開發(fā)人員。問題所屬層次系統(tǒng)架構(gòu)數(shù)據(jù)庫設(shè)計代碼代碼設(shè)計與代碼開發(fā)人員關(guān)注的性能問題:開發(fā)人員關(guān)心的問題架構(gòu)設(shè)計是否合理數(shù)據(jù)庫設(shè)計是否存在問題代碼是否存在性能方面的問題系統(tǒng)中是否有不合理的內(nèi)存使用方式系統(tǒng)中是否存在不合理的線程同步方式的資源競爭1.1.3軟件性能的重要性保障軟件系統(tǒng)的性能具

4、有十分重要的意義,具體體現(xiàn)在以下方面:(1)系統(tǒng)性能越好,執(zhí)行速度越快,用戶使用系統(tǒng)的體驗就越好(2)系統(tǒng)性能越好,用戶的等待時間越少,有利于提高軟件操作效率。(3)系統(tǒng)性能越好,處理能力越大,單位時間處理業(yè)務(wù)量越大。(4)系統(tǒng)性能越好,在大量用戶訪問系統(tǒng)時系統(tǒng)穩(wěn)定性越好,能夠提供持續(xù)服務(wù)。(5)系統(tǒng)性能擴展性越好,越容易提升系統(tǒng)的處理能力,以適應(yīng)更多的訪問需求。能意味著重大的銷售損失或用戶流失,保持系統(tǒng)系統(tǒng)性能對于軟件系統(tǒng)的運營企業(yè)具有非常重要性能的的意義,系統(tǒng)下降可良好的系能對于提高用戶體驗、提升站點聲譽、提升客戶忠誠度、增加系統(tǒng)收入等都具有重要作用。1.2常用性能指標(biāo)121響應(yīng)時間響應(yīng)時

5、間指用戶感受到的軟件系統(tǒng)為其服務(wù)所耗費的時間。一般情況下,需要定義三種情況下的系統(tǒng)的響應(yīng)時間:(1)閑時響應(yīng)時間:指系統(tǒng)中訪問用戶數(shù)量較少的情況下,用戶訪問系統(tǒng)的響應(yīng)時間,也可理解為在不受其他用戶干擾的情況下,系統(tǒng)應(yīng)該具有的性能表現(xiàn)。(2)忙時響應(yīng)時間:指在系統(tǒng)處理正常訪問用戶量的情況下,用戶訪問系統(tǒng)的響應(yīng)時間。該指標(biāo)定義了系統(tǒng)在正常訪問狀態(tài)下應(yīng)該具有的響應(yīng)時間要求,體現(xiàn)了系統(tǒng)在正常訪問狀態(tài)下的性能表現(xiàn)。(3)峰時響應(yīng)時間:指在系統(tǒng)具有大量并發(fā)用戶的情況下,用戶訪問系統(tǒng)的響應(yīng)時間。該指標(biāo)定義了系統(tǒng)在承載最大并發(fā)用戶情況下應(yīng)該具有的響應(yīng)時間要求,體現(xiàn)了系統(tǒng)壓力負(fù)荷最大情況下的性能表現(xiàn),也可以理解

6、為系統(tǒng)最大響應(yīng)時間。1.2.2并發(fā)用戶并發(fā)用戶數(shù)指系統(tǒng)能夠同時處理的用戶請求的數(shù)目,也可以理解為同時向系統(tǒng)提交請求的用戶數(shù)目。注冊用戶數(shù)指系統(tǒng)中全部注冊用戶的數(shù)量;在線用戶數(shù)指在相同時間段內(nèi)登錄了系統(tǒng),并在系統(tǒng)中進(jìn)行操作的用戶數(shù)量。平均并發(fā)用戶數(shù):指在系統(tǒng)正常訪問量情況下的并發(fā)用戶數(shù)。最大并發(fā)用戶數(shù):指在峰值訪問情況下的并發(fā)用戶數(shù)。如何判斷是否達(dá)到峰值訪問情況:(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ù)/總

7、請求數(shù)。當(dāng)系統(tǒng)壓力過大時,某些用戶請求就會執(zhí)行失敗,如果失敗率過高,就說明系統(tǒng)已經(jīng)達(dá)到了處理能力的上限,所以可以根據(jù)成功率來判斷是否已經(jīng)達(dá)到了最大并發(fā)用戶數(shù)。平均并發(fā)用戶數(shù)僅反映了系統(tǒng)某個時刻的用戶訪問情況,并不反映系統(tǒng)的性能情況;而最大并發(fā)用戶數(shù)反映了系統(tǒng)的處理能力,往往作為一項重要的性能指標(biāo)在需求分析時進(jìn)行定義。1.2.3吞吐量吞吐量指單位時間內(nèi)系統(tǒng)處理的客戶請求數(shù)量,體現(xiàn)系統(tǒng)的整體處理能力。系統(tǒng)吞吐量越大,說明系統(tǒng)性能越好。衡量吞吐量的常用指標(biāo)內(nèi)包括:RPS:請求數(shù)/秒,描述系統(tǒng)每秒能夠處理的最大請求數(shù)量。PPS:頁面數(shù)/秒,描述系統(tǒng)每秒能夠現(xiàn)實的頁面數(shù)量。PV:頁面數(shù)/天,描述系統(tǒng)每天

8、總的PageView數(shù)量。TPS:事務(wù)/秒,描述系統(tǒng)每秒能夠處理的事務(wù)數(shù)量。QPS:査詢/秒,描述系統(tǒng)每秒能夠處理的査詢請求數(shù)量。1.2.4服務(wù)器性能計數(shù)器服務(wù)器性能計數(shù)器指服務(wù)器或操作系統(tǒng)性能的一些數(shù)據(jù)指標(biāo),在性能測試中發(fā)揮著監(jiān)控和分析的關(guān)鍵作用常用的操作系統(tǒng)性能計數(shù)器包括SystemLoad、進(jìn)程與線程數(shù)、使用內(nèi)存數(shù)、CPU使用率、磁盤I/O、網(wǎng)絡(luò)I/O等。資源利用率反映的是在一段時間內(nèi)服務(wù)器資源平均被占用的情況,能夠更加直觀的反映系統(tǒng)當(dāng)前的運行情況,例如CPU利用率如果達(dá)到80%,就說明當(dāng)前CPU基本已經(jīng)耗盡,系統(tǒng)處于滿載狀態(tài)。所以在進(jìn)行性能需求分析時,往往通過資源利用率指標(biāo)來定義服務(wù)器

9、性能要求。第2章軟件性能測試基礎(chǔ)2.1 軟件性能測試的概念定義:狹義的軟件性能測試指為驗證軟件性能指標(biāo)、評估系統(tǒng)服務(wù)能力、推薦系統(tǒng)軟硬件配置、完成系統(tǒng)性能優(yōu)化等而開展的測試活動;廣義的軟件性能測試是指測試過程中需要相關(guān)性能測試方法配合完成的系統(tǒng)測試活動,包括可靠性測試、可恢復(fù)性測試、穩(wěn)定性測試、兼容性測試、可擴展性測試等。2.2 軟件性能測試的目標(biāo)目標(biāo)分為4個方面:能力驗證、缺陷發(fā)現(xiàn)、能力規(guī)劃、性能優(yōu)化1、能力驗證分為3個層面:驗證性能指標(biāo)與需求的符合情況軟件系統(tǒng)性能測試最主要的目標(biāo):驗證軟件性能是否符合軟件需求文檔中的性能指標(biāo)要求,是否符合預(yù)定的設(shè)計目標(biāo)。獲得系統(tǒng)服務(wù)能力評價系統(tǒng)可靠性6個質(zhì)

10、量特性:功能性、可靠性、易用性、效率性、維護(hù)性、可移植性可靠性一般用平均無故障時間(MTTF)來度量,三個子特性:成熟性、容錯性、可恢復(fù)性。2、缺陷發(fā)現(xiàn)缺陷發(fā)現(xiàn)性能測試的主要目的是:通過性能測試的手段來發(fā)現(xiàn)系統(tǒng)中存在的缺陷,并不需要驗證性能指標(biāo)是否滿足需求的要求。3、能力規(guī)劃特點:1、規(guī)劃能力是一種探索新的測試2、配置規(guī)劃可用于了解系統(tǒng)的性能以及獲得擴展性能的方法。4、性能優(yōu)化性能條有的前提:進(jìn)行性能瓶頸定位特點:1、確定基準(zhǔn)環(huán)境、基準(zhǔn)負(fù)載和基準(zhǔn)性能指標(biāo)2、調(diào)整系統(tǒng)運行環(huán)境和實現(xiàn)方法、執(zhí)行測試2.3常用性能測試方法性能測試名稱基準(zhǔn)測試-壓力測試定義說明通過設(shè)計科學(xué)的測試方法、測試工具和測試系統(tǒng)

11、,實現(xiàn)對一類測試對象的某種性能指標(biāo)進(jìn)行定量的和可對比的測試。主要目的是檢驗系統(tǒng)性能與相關(guān)標(biāo)準(zhǔn)的符合程度通過對軟件系統(tǒng)不斷施加壓力,識別系負(fù)載測試并發(fā)測試疲勞測試數(shù)據(jù)量測試配置測試刀bl工廿匕Z711UTTSI7klUJ4X-Xv服務(wù)級別的測試活動。主要目的是檢查系統(tǒng)處于壓力情況下應(yīng)用的表現(xiàn)。通過在被測系統(tǒng)中不斷增加壓力,直到達(dá)到性能指標(biāo)極限要求。主要目的是找到特定環(huán)境下系統(tǒng)處理能力的極限。并發(fā)測試主要指當(dāng)測試多用戶并發(fā)訪問同一個應(yīng)用、模塊、數(shù)據(jù)時是否產(chǎn)生隱藏的并發(fā)問題,如內(nèi)存泄露、線程鎖、資源爭用問題。主要目的并非為了獲得性能指標(biāo),而是為了發(fā)現(xiàn)并發(fā)引起的問題。通過讓軟件系統(tǒng)在一定訪問量情況下長

12、時間運行,以檢驗系統(tǒng)性能在多長時間后會出現(xiàn)明顯下降。主要目的是驗證系統(tǒng)運行的可靠性。通過讓軟件在不同數(shù)據(jù)量情況下運行,以檢驗系統(tǒng)性能在各種數(shù)據(jù)量情況下的表現(xiàn)。主要目的是找到支持系統(tǒng)正常工作的數(shù)據(jù)量極限。通過對被測系統(tǒng)的軟/硬件環(huán)境的調(diào)整廠了解各種不同環(huán)境對系統(tǒng)性能影響的程基準(zhǔn)測試三大原則:可測量、可重復(fù)、可對比度,從而找到系統(tǒng)各項資源的最優(yōu)分配原則。主要目的是了解各種不同因素對系統(tǒng)性能影響的程度,從而判斷出最值得進(jìn)行的調(diào)優(yōu)操作。2.4軟件性能測試范I(1) 服務(wù)器性能測試(2) 網(wǎng)絡(luò)性能測試(3) 客戶端性能測試2.5性能測試面臨的問題主要包括:1、沒有明確的性能指標(biāo)需求2、不切實際的性能指標(biāo)

13、要求3、在開發(fā)環(huán)境下做性能測試4、走形式地進(jìn)行性能測試5、只測試、不分析6、只測試、不優(yōu)化7、性能測試缺乏方法論的指導(dǎo)8、缺乏高水平的性能測試人才第三章性能測試的組織管理3.1軟件性能測試過程模型非經(jīng)典的軟件開發(fā)模型:瀑布模型、螺旋模型、增量模型、噴泉模型、原型模型、敏捷開發(fā)軟件測試相關(guān)模型:V模型、W模型、H模型、X模型3.1.1試過Segue性能測Segue性能測試模型3.1.2HP性能測試過程模型制定測試設(shè)計性能錄制VU創(chuàng)建測試執(zhí)行性能結(jié)果分HP性能測試過程模型3.1.3 PTGM(PerformanceTestGeneralModel)性能測試過程模型3.1.4 APTM(AgileP

14、erformanceTestModel)敏捷性能測試過程模型識別性能設(shè)置環(huán)境分析測試性能測試支持性能基準(zhǔn)測試支持3.1.5 SPTM(SystemPerformanceTestModel)系統(tǒng)性能測試過程模型1. 組建測試團(tuán)隊1)組織團(tuán)隊成員2)安排工作分工3)進(jìn)行技能培訓(xùn)2. 指定測試計劃1)明確測試范圍2)制定進(jìn)度計劃3)制定成本計劃4)制定環(huán)境計劃5)測試工具計劃6)測試風(fēng)險分析3. 設(shè)計測試方案1)明確性能需求2)設(shè)計性能測試用例3)設(shè)計腳本錄制方案4)設(shè)計測試場景5)設(shè)計測試結(jié)果指標(biāo)4. 搭建測試環(huán)境1)搭建硬件環(huán)境2)搭建軟件環(huán)境3)搭建測試環(huán)境4)準(zhǔn)備數(shù)據(jù)環(huán)境5. 執(zhí)行性能測試1

15、)腳本錄制與開發(fā)2)場景設(shè)置3)測試執(zhí)行4)測試監(jiān)控6. 分析測試結(jié)果1)測試結(jié)果分析2)性能瓶頸分析3)制定優(yōu)化方案4)性能測試總結(jié)性能測試支持環(huán)境:評審、溝通、管理、支持3.2組件性能測試團(tuán)隊1組織團(tuán)隊成員2安排工作分工3進(jìn)行技能培訓(xùn)3.2.1組織團(tuán)隊成員角色測試負(fù)責(zé)人職責(zé)性能測試設(shè)計人員1和用戶等項目干系人交互,確保測試的外部環(huán)境2. 制定測試計劃3. 監(jiān)控測試進(jìn)度4. 發(fā)現(xiàn)和處理測試中的風(fēng)險1. 理解性能需求2. 設(shè)計性能測試流程3. 設(shè)計性能測試用例技能1計劃執(zhí)行和監(jiān)控能力2. 風(fēng)險意識能力3. 協(xié)調(diào)溝通能力和靈活變通的能力1業(yè)務(wù)把握能力2. 性能需求分析和識別能力性能測試配置人員W

16、試腳本開發(fā)人員性能測試執(zhí)行人員能5. 設(shè)計測試場景1. 部署性能測試環(huán)境2. 維護(hù)性能測試文檔3. 系統(tǒng)版本管理1. 實現(xiàn)已設(shè)計的性能場景2. VU腳本的錄制、開發(fā)、調(diào)試3確定測試時需要監(jiān)控的性能指標(biāo)、性能計數(shù)器1. 使用工具執(zhí)行測試場景2. 根據(jù)監(jiān)控要求記錄測試結(jié)果、記錄性能3. 執(zhí)行性能測試用例1. 配置平臺使用能力2. 版本管理能力3. 環(huán)境部署能力1、腳本編碼和調(diào)試能力2、理解性能指標(biāo)和性能計數(shù)器1. 搭建測試環(huán)境的能力2. 測試工具使用(執(zhí)行)的能力3. 性能指標(biāo)和性能計數(shù)器獲取和記錄的能力性能測試分析人員1. 根據(jù)測試結(jié)果、性能指標(biāo)的數(shù)值、性能計數(shù)器值進(jìn)行分析支持較色(系統(tǒng))支持較

17、色(絡(luò))支持角色2. 根據(jù)性能規(guī)劃,分析出性能的瓶頸或是給出優(yōu)化建議系統(tǒng)支持,協(xié)助解決測試工程師無解決的系統(tǒng)問題網(wǎng)絡(luò)方面的支持,協(xié)助測試工程師解決網(wǎng)絡(luò)方面的問題,必要時為測試分析角色提供網(wǎng)絡(luò)方面的分析支持?jǐn)?shù)據(jù)庫方面的支持,必要時為測試1. 掌握性能測試工具的使用方法2. 掌握應(yīng)用系統(tǒng)性能領(lǐng)域相關(guān)知識,理解所采用的架構(gòu)3. 熟悉常用的性能分析方法4. 具有一定的編碼經(jīng)驗處理系統(tǒng)問題的能力和技能。最好有專職的系統(tǒng)管理員擔(dān)任這個角色網(wǎng)絡(luò)方面的能力和技能,最好由專職的網(wǎng)絡(luò)管理人員擔(dān)任網(wǎng)絡(luò)方面的能力和技能,最好由專職(數(shù)據(jù)庫)分析角色提供數(shù)據(jù)庫方面的支持DBA擔(dān)任支持角色(中間件)中間件平臺方面的支持,

18、在必要時為測試分析較色提供中間件方面的支持深入了解中間件產(chǎn)品的特點和配置方案,可以由專職的中間件專家擔(dān)任第六章LoadRunner基礎(chǔ)6.2 LoadRunner功能結(jié)構(gòu)6.2.1 LoadRunner工具組成LoadRunner功能非常復(fù)雜,核心模塊為VirtualUserGenerator、Controller、Analysis、LoadGenerator、Proxy五部分。虛擬用戶腳本生成器VirtualUserGenerator,簡稱VuGen,是用來錄制虛擬用戶腳本的工具支持大量的通信協(xié)議,支持自動化腳本錄制和二次開發(fā),為系統(tǒng)性能測試提供尋虛擬腳本支持。負(fù)載生成器LoadGenera

19、tor,簡稱LG,負(fù)責(zé)將VuGen腳本復(fù)制成大量虛擬用戶對系統(tǒng)生成負(fù)載,在性能測試中,用來模擬大量用戶并發(fā)訪問系統(tǒng)。用戶代理Proxy,是客戶端和服務(wù)器的中介,負(fù)責(zé)協(xié)調(diào)不同負(fù)載機上的虛擬用戶,產(chǎn)生步調(diào)一致的虛擬用戶。測試控制器Controller,負(fù)責(zé)對整個測試的過程進(jìn)行設(shè)置,制定測試過程中的VU腳本、并發(fā)用戶數(shù)、加壓方式、執(zhí)行周期、監(jiān)控參數(shù)等,同時提供測試過程中的監(jiān)控功能。結(jié)果分析器Analysis,負(fù)責(zé)對測試中手機的相關(guān)數(shù)據(jù)進(jìn)行整理和分析,形成各種圖形表,輔助性能測試分析人員完成測試結(jié)果的分析任務(wù)。6.2.1 LoadRunner工作controller是執(zhí)行負(fù)載測試管理和監(jiān)控的中心,在這

20、里定制具體的性能測試方案,執(zhí)行性能測試,收集測試數(shù)據(jù),監(jiān)控測試指標(biāo)。LG是虛擬多用戶并發(fā)訪問被測系統(tǒng)的組件,虛擬多用戶并發(fā)訪問系統(tǒng)的前提是已經(jīng)具備了虛擬用戶的腳本,Vugen是錄制和編輯虛擬用戶腳本的工具,錄制好的腳本是不同語言表達(dá)的文本文件,在LG執(zhí)行時,被解析和執(zhí)行,腳本錄制和回訪是在Proxy支持下完成的。Controller中的實時監(jiān)控工具將測試過程中收集到的客戶機、服務(wù)器和網(wǎng)絡(luò)性能指標(biāo)數(shù)據(jù)顯示在監(jiān)控頁面上,便于測試人員對系統(tǒng)表現(xiàn)進(jìn)行隨時掌握。Analysis在測試完成后,對測試過程中收集到的各種性能數(shù)據(jù)進(jìn)行計算、匯總和處理,生成各種圖標(biāo)和報告,為系統(tǒng)性能測試結(jié)果分析提供支持。6.3

21、LR關(guān)鍵概念631虛擬用戶虛擬用戶(virtualuser,簡稱Vuser)指性能測試過程中執(zhí)行VU腳本以模擬虛擬真實用戶對系統(tǒng)訪問的執(zhí)行實體。一臺測試機上只能有一個真實用戶執(zhí)行系統(tǒng)功能,但在loadrunner中,可以運行多個Vuser,很方便模擬多用戶對系統(tǒng)的并發(fā)訪問。6.3.2 VU腳本VU腳本(script)記錄了用戶執(zhí)行系統(tǒng)功能的操作過程,是Vuser執(zhí)行的對象。LoadRunner還可以通過參數(shù)化、關(guān)聯(lián)等手段對VU腳本進(jìn)行二次開發(fā),提高腳本的靈活性。6.3.3場景場景(scenario)是一次性能測試執(zhí)行內(nèi)容的定義,用來模擬虛擬用戶是如何產(chǎn)生壓力的。場景中包含所有執(zhí)行的腳本、虛擬用

22、戶、負(fù)載生成器、運行過程配置、實時監(jiān)控五方面內(nèi)容。在定義場景時,包含手工場景和面向目標(biāo)場景兩種設(shè)置方式。6.3.4事務(wù)事務(wù)(transaction)提供一種端到端的測量方法,用于測量一個業(yè)務(wù)流程中執(zhí)行一個或多個步驟所花費的時間。事務(wù)可以理解成一個計時單位,LoadRunner在運行過程中,一旦發(fā)現(xiàn)事務(wù)的開始標(biāo)志,就開始計時,一旦發(fā)現(xiàn)事物的結(jié)束標(biāo)志則測試結(jié)束計時,這個過程中得到的時間即為一個事務(wù)時間。6.3.5檢查點檢查點(checkpoint)提供了一種結(jié)果正確性驗證的機制,保證了測試工具對執(zhí)行通過判斷的準(zhǔn)確性。LoadRunner的VuGen組件允許插入文本檢查點和圖形檢查點。&3.

23、6思考時間思考時間(thinktime)提供了一種讓VU腳本暫停執(zhí)行(等待一段時間)的機制,用來模擬實際用戶在執(zhí)行不同操作之間的等待時間,以便更加真實的反應(yīng)用戶訪問系統(tǒng)的行為規(guī)律。&3.7集合點集合點(rendezvous)提供一種用戶并發(fā)訪問機制,用來模擬多用戶對系統(tǒng)的并發(fā)訪問。在Vuser需要執(zhí)行腳本中插入集合點,配置多個Vuser同時執(zhí)行操作,當(dāng)某個Vuser到達(dá)集合點時,將進(jìn)行等待,知道參與該集合的全部Vuser都到達(dá)或者已經(jīng)指定數(shù)量的Vuser到達(dá)后,同時釋放Vuser,讓它們同時開始下一任務(wù)的執(zhí)行,從而模擬多用戶并發(fā)訪問系統(tǒng)。第七章腳本的錄制與開發(fā)課題背景:使用LoadRu

24、nner對系統(tǒng)進(jìn)行并發(fā)負(fù)載測試時需要依賴虛擬用戶腳本,虛擬用戶腳本的錄制需要基于相應(yīng)的通信協(xié)議。7.1-最常用的幾種LoadRunner支持通信協(xié)議1. HTTP協(xié)議超文本傳輸協(xié)議(HTTP,H壓迫而textTransferProtocol)是一種詳細(xì)規(guī)定了瀏覽器和萬維網(wǎng)服務(wù)器之間互相通信的規(guī)則,通過互聯(lián)網(wǎng)傳達(dá)萬維網(wǎng)文檔的數(shù)據(jù)傳送協(xié)議。一般在測試B/S架構(gòu)應(yīng)用系統(tǒng)時,需要選擇這個協(xié)議。2. FTP協(xié)議FTP是TCP/IP協(xié)議組中的協(xié)議之一,是英文FileTransferProtocol的縮寫。該協(xié)議是Internet文件傳送的基礎(chǔ),它是由一系列規(guī)格說明文檔組成,目標(biāo)是提高文件的共享性,提高非直

25、接使用遠(yuǎn)程計算機,使存儲介質(zhì)對用戶透明和可靠高效的傳送數(shù)據(jù)。如果測試的系統(tǒng)是一個FTP服務(wù)器時,可以選擇該協(xié)議進(jìn)行腳本的錄制。3.Socket協(xié)議Socket通常也稱為“套接字”,是一般網(wǎng)絡(luò)軟件的不同實體之間進(jìn)行通信的一種協(xié)議。我們選擇協(xié)議時,只有在其他協(xié)議不合適,或?qū)嵲诓磺宄x擇何種協(xié)議時,才會選擇Socket協(xié)議。4. WebService協(xié)議WebService是一種面向服務(wù)體系架構(gòu)的實現(xiàn)技術(shù),提供了服務(wù)描述、發(fā)布、提供、管理等一些協(xié)議。Web服務(wù)體系使用一系列標(biāo)準(zhǔn)和協(xié)議來實現(xiàn)相關(guān)的功能。使用WSDL來描述系統(tǒng),使用UDDI來發(fā)布、查找服務(wù),使用SOAP來調(diào)用服務(wù)。依據(jù)WebServic

26、e規(guī)范實施的應(yīng)用之間,無論它們所使用的語言、平臺或內(nèi)部協(xié)議是什么,都可以相互交換數(shù)據(jù)。如果被測試功能是通過WebService方式提供,那么在錄制腳本的時候可以選擇WebService協(xié)議。5. RTE協(xié)議RTE協(xié)議是對一些遺留系統(tǒng)進(jìn)行測試時進(jìn)行終端仿真時使用的協(xié)議。終端仿真就是使用一個計算機終端模仿另一個計算機終端。通常被模仿的終端是較早的型號,以便于用戶最初寫給該終端進(jìn)行通信的程序了。7.2通信協(xié)議的選擇方法通過詢問開發(fā)人員了解被測試系統(tǒng)所使用的協(xié)議,通常這是最簡單也最直接的方法。通過概要或詳細(xì)設(shè)計手冊獲知所使用的協(xié)議。通過協(xié)議分析工具捕包分析,然后確定被測試對象所使用的協(xié)議。通過以往測試

27、經(jīng)驗確定被測試對象所使用的協(xié)議,這種方法確定協(xié)議有一定的不確定性使用LoadRunner的協(xié)議分析功能,試著錄制一下腳本,然后這個功能會自動幫助用戶分析應(yīng)該使用的協(xié)議,具有一定的可信度。LoadRunner錄制腳本1.基本錄制流程2. 錄制選項在LoadRunner中有兩種腳本錄制模式:HTML-basedscript和URL-basedscript。©.HTML-basedscript(基于HTML的腳本)錄制模式指在腳本中采用HTML頁面形式來表示,為每個用戶操作生成單獨的步驟,這種腳本更容易理解和維護(hù),一般使用HTML錄制模式。.URL-basedscript(基于URL的腳本

28、)可以錄下通過瀏覽器對服務(wù)器所作的所有請求和資源獲取,它自動將每一步的HTTP資源錄制為URL_steps(通過Web_url函數(shù)進(jìn)行處理)。URL-based方式錄制的腳本不太直觀,閱讀不便。3. 選擇錄制方式的參考方案如果應(yīng)用是Web應(yīng)用,首先是HTML-based錄制模式。如果應(yīng)用是使用HTTP協(xié)議的非Web應(yīng)用,則首選URL_based錄制模式。如果Web應(yīng)用中使用了Javaapplet程序,且applet程序與服務(wù)器之間存在通信,則選用URL-based錄制模式。7.4腳本開發(fā)知識1. 在LoadRunner的腳本中,通常含有如下三種函數(shù):(1)VuGen通用函數(shù)。一般以lr開頭。(

29、2)協(xié)議相關(guān)函數(shù)。不同類型的Vuser的函數(shù)一般以本協(xié)議類型開頭。HTTP的協(xié)議函數(shù)還包括web_list、web_link等。(3)語言相關(guān)函數(shù)。2. 通用的VuGen函數(shù)(1)事務(wù)與事務(wù)控制函數(shù)如:lr_get_transaction_duration:獲取事務(wù)的持續(xù)時間(按事務(wù)名稱)lr_get_transaction_think_time:獲取事務(wù)思考時間(按事務(wù)名稱)(2)命令行分析函數(shù)如:lr_get_attrib_double:檢索腳本命令行中使用的double類型變量。lr_get_attrib_long:檢索命令行中使用的long類型變量。lr_get_attrib_stri

30、ng:檢索命令行中使用的字符串。(3)系統(tǒng)信息函數(shù)用來得到VuGen的系統(tǒng)信息Lr_user_data_point:記錄用戶定義的數(shù)據(jù)采集點。Lr_get_host_name:返回執(zhí)行Vuser腳本的主機名。Lr_get_master_host_name:返回運行Controller的計算機名。(4)字符串函數(shù)如:lr_save_datetime:把當(dāng)前日期和時間保存到一個參數(shù)中。lr_save_int:把一個整數(shù)保存為參數(shù)。lr_save_var:把字符串的一部分內(nèi)容保存為參數(shù)。(5)消息函數(shù)如:lr_output_message:將消息發(fā)送到輸出窗口。lr_message:將消息發(fā)送到Vu

31、ser日志和輸出窗口。(6)運行時函數(shù)如:lr_think_time:暫停腳本的執(zhí)行,模擬思考時間,思考時間用完后,繼續(xù)執(zhí)行。lr_rendezvous:在Vuser腳本中設(shè)置集合點。腳本注釋LoadRunner提供了兩種腳本注釋方法:(1)單行注釋“/”;(2)塊注釋。“/*”,“*/”7.5.檢查點相關(guān)設(shè)置1. 檢查點分類(1) 文本檢查點文本檢查點函數(shù)是通過Web_reg_find()來實現(xiàn)的,Web_reg_find()是一個注冊型函數(shù),注冊函數(shù)一定要寫在請求前,所以該函數(shù)一定出現(xiàn)在檢查文本之前。文本檢查點的兩種形式:代碼一:web_reg_find(“Text=”,LAST);代碼二

32、:web_reg_find(“Text=”,LAST);If()lr_output_message(“");elselr_output_message(“");(2) 自動檢查點按F4|ContentCheck或Run-timesettings|ContentCheck(3) 圖片檢查點Web_image_check(“函數(shù)標(biāo)題”,“ALT=圖片說明”,“LAST”)檢查點的設(shè)置技巧:檢查點可以是常量,也可以是變量;檢查點可以是文本、圖像文件,也可以是數(shù)據(jù)庫記錄等。2. 事務(wù)設(shè)置(1) .事務(wù)的開始函數(shù)是lr_start_transaction(),選擇新事務(wù)起點,鼠標(biāo)右鍵

33、|Insert|startTransaction(2) .事務(wù)的開始函數(shù)是lr_end_transaction(),選擇新事務(wù)結(jié)束點,鼠標(biāo)右鍵|Insert|EndTransaction(3) 事務(wù)的狀態(tài)LoadRunner_PASS事務(wù)是以PASS狀態(tài)通過的,該事務(wù)做了正確的事情。LoadRunner_FAIL事務(wù)是以FAIL狀態(tài)通過的,該事務(wù)做失敗的事情。LoadRunner_AUTO事務(wù)的狀態(tài)是由系統(tǒng)判斷的,結(jié)果為PASS/FAIL/STOP。3. 參數(shù)化參數(shù)化包含以下兩個任務(wù):(1)在腳本中用參數(shù)取代常量值;(2)設(shè)置參數(shù)的屬性以及數(shù)據(jù)源。4. 關(guān)聯(lián)設(shè)置。關(guān)聯(lián)主要有手動關(guān)聯(lián)和自動關(guān)聯(lián)。

34、手動關(guān)聯(lián)中,關(guān)聯(lián)函數(shù)web_reg_save_param是一個注冊型函數(shù)。5. 集合點設(shè)置集合點通過在腳本中插入lr_rendezvous()函數(shù)實現(xiàn)。集合點要放在開始事務(wù)之前。集合點有三種策略:當(dāng)百分之多少的用戶到達(dá)集合點時腳本繼續(xù);當(dāng)百分之多少的運行用戶到達(dá)集合點時腳本繼續(xù)多少個用戶到達(dá)集合點時腳本繼續(xù)。7.6日志對腳本錄制起關(guān)鍵作用的三個日志執(zhí)行日志(ExecutionLog):腳本運行時的輸出都記錄在這個日志里黑色:標(biāo)準(zhǔn)輸出信息、紅色:標(biāo)準(zhǔn)錯誤信息綠色:用引號括起來的文字字符串藍(lán)色:事務(wù)信息(開始、結(jié)束、狀態(tài)和持續(xù)時間)錄制日志(RecordingLog)產(chǎn)生日志(Generation

35、Log)第八章場景管8.1場景概念&1.1場景概念場景主要是用來模擬真實用戶向被測系統(tǒng)產(chǎn)生壓力,是一種用來模擬大量用戶操作事物技術(shù)手段。通過配置和執(zhí)行場景向服務(wù)器產(chǎn)生負(fù)載,驗證系統(tǒng)各項性能指標(biāo)是否達(dá)到用戶要求,而Controller可以幫助用戶對場景的設(shè)計、執(zhí)行及監(jiān)控進(jìn)行管理。1設(shè)計場景設(shè)計場景需要設(shè)置以下內(nèi)容:(1)選擇場景類型(2)設(shè)置負(fù)載生產(chǎn)器(3)配置用戶組(4)配置壓力設(shè)置(5)配置運行設(shè)置(6)IP虛擬(7)SLA2場景運行和監(jiān)控需要關(guān)注你以下內(nèi)容:(1)執(zhí)行場景(2)負(fù)載生成監(jiān)控(3)被負(fù)載系統(tǒng)監(jiān)控場景報告8.2Controller簡介Controller中主要有兩個主要

36、的工作視圖:Design視圖和Runs視圖。手動場景模式該界面主要包含三個主要的工作區(qū)域:1Design視圖(1) ScenarioScripts:場景腳本設(shè)置區(qū)域。主要負(fù)責(zé)對場景執(zhí)行過程的虛擬用戶腳本、負(fù)載發(fā)生器等進(jìn)行設(shè)置。(2) ScenarioSchedule:場景計劃設(shè)置區(qū)域。主要負(fù)責(zé)設(shè)置測試加壓方式以準(zhǔn)確模擬真實用戶的行為。(3) ServicelevelAgreement:服務(wù)水平協(xié)議設(shè)置區(qū)域。設(shè)計負(fù)載測試場景是,可以為性能指標(biāo)定義目標(biāo)值或服務(wù)水平協(xié)議。面向目標(biāo)場景模式該界面主要包含三個主要的工作區(qū)域:Design視圖(1) ScenarioScripts:場景腳本設(shè)置區(qū)域。主要負(fù)

37、責(zé)對場景執(zhí)行過程的虛擬用戶腳本進(jìn)行設(shè)置。(2) ScenarioSchedule:場景計劃設(shè)置區(qū)域。主要負(fù)責(zé)設(shè)置場景目標(biāo)。(3) ServicelevelAgreement:服務(wù)水平協(xié)議設(shè)置區(qū)域。設(shè)計負(fù)載測試場景是,可以為性能指標(biāo)定義目標(biāo)值或服務(wù)水平協(xié)議。2Run視圖Run視圖是Controller中運行視圖,包含5個主要區(qū)域(1) ScenarioGroup:場景組區(qū)域。位于窗口的左上角,可以查看場景組內(nèi)Vuser的狀態(tài)。使用該窗口右側(cè)的按鈕可以啟動,停止和重置場景,查看各個Vuser的狀態(tài),通過手動添加更多Vuser可以增加場景運行期間應(yīng)用程序的負(fù)載。(2) ScenarioStatus:

38、場景狀態(tài)區(qū)域.位于窗口的右上角,可以在其中查看負(fù)載測試的概要信息,包括正在運行的Vuser的數(shù)量和每個Vuser操作的狀態(tài)。(3) AvaliableGraph:可用圖區(qū)域。位于窗口中間偏左位置,列出了LoadRounder能夠提供的性能指標(biāo)數(shù)據(jù)。(4) 圖查看區(qū)域:位于窗口中間偏右位置,可以在其中自定義測試過程中顯示的指標(biāo)的數(shù)據(jù)。(5) 圖例:位于窗口底部,可以在其中查看所選性能指標(biāo)的數(shù)據(jù)負(fù)載生成器配置負(fù)載發(fā)生器(LoadGenerators)是一個可以獨立部署并運行的腳本的負(fù)載引擎。82手工場景設(shè)置在一個測試場景中,需要設(shè)置執(zhí)行的虛擬用戶腳本,用來模擬真實用戶對被測系統(tǒng)的訪問。&2

39、.1場景腳本設(shè)置1. 添加腳本在創(chuàng)建場景時,可以選擇要執(zhí)行的腳本,在場景腳本區(qū)域內(nèi),還可以進(jìn)一步增加新的阿膠本,單擊“添加腳本”按鈕,彈出添加腳本的對話框,在其中可以設(shè)置腳本所屬的組,設(shè)置執(zhí)行該腳本的虛擬用戶數(shù),選擇執(zhí)行該腳本的負(fù)載發(fā)生器,選擇要執(zhí)行腳本。2. 刪除組在場景設(shè)置過程中,隨時都可以刪除虛擬腳本,在腳本列表中選擇要刪除的腳本后,點擊“刪除組”按鈕,即可將該腳本刪除3. 虛擬用戶在創(chuàng)建手工場景時,如何沒有選擇"usethepercentagemodetodistributethevusersamongthescripts”選項,則每個腳本都有固定的虛擬用戶。點擊“虛擬用戶”

40、按鈕,可以打開虛擬用戶對話框,在其中可以對虛擬用戶進(jìn)行管理。Run:啟動Vuser開始執(zhí)行。GradualStop:逐步停止。Stop:立刻停止。Reset:恢復(fù)初始狀態(tài)。Details:査看腳本詳情。AddVuser:增加虛擬用戶Refresh:刷新表格狀態(tài)Help:幫助Close:關(guān)閉窗口場景用戶狀態(tài)狀態(tài)含義1掛起(Pending)Vuser已經(jīng)準(zhǔn)備好??梢赃M(jìn)行初始化,正在將腳本文件傳輸?shù)截?fù)載生產(chǎn)器2初始化(Init)Vuser正在初始化,執(zhí)行對應(yīng)Runlogic下的init部分3就緒(Ready)Vuser已經(jīng)執(zhí)行初始化操作,可以運行Action了4集合點"(Rendezvou

41、s)Vuser到達(dá)集合點,正在等待條件滿足,然后釋放101112完成并通過(Pass)完成并通過(Fa訂ed)錯誤(Error)(GragualExiting)逐步退出(Exiting)退出Vuser已經(jīng)運行結(jié)束,并且是成功通過Vuser已經(jīng)運行結(jié)束,并且是失敗Vuser發(fā)生了錯誤,要了解錯誤的完整說明,就要查看單個vuser的詳細(xì)狀態(tài)日志Vuser正在運行退出前的最后一次迭代(Stopped)停止(Down)關(guān)閉Vuser已經(jīng)完成操作,正在退出Vuser被停止Vuser處于關(guān)閉狀態(tài)第九章測試結(jié)果分析9.1Analysis基礎(chǔ)Analysis包含的的主要窗口:會話瀏覽器(sessionexpl

42、orer)區(qū)域;屬性(properties)區(qū)域;圖查看區(qū)域;圖例(legend)。Analysis的六大類分析圖:虛擬用戶(vusers)圖;errors圖;事務(wù)(transactions)圖;web資源(webresources)圖;網(wǎng)頁細(xì)分(webpagebreakdown)圖;系統(tǒng)資源(systemresources)圖。性能測試分析流程:1從summary的事務(wù)執(zhí)行情況入手;2查看負(fù)載發(fā)生器和服務(wù)器的系統(tǒng)資源情況;3查看虛擬用戶與事務(wù)的詳細(xì)執(zhí)行情況4査看錯誤發(fā)生情況5查看web資源與細(xì)分網(wǎng)頁9.2監(jiān)控計數(shù)器的內(nèi)容;9.2.1 Memory(內(nèi)存):1. Ava訂ablembytes可

43、用內(nèi)存數(shù)2. Page/sec(input/out)為了解析硬頁錯誤,從磁盤取出或?qū)懭氲捻摂?shù)。3. Pagefault處理器每秒處理的錯誤頁4. Pageinput/sec為了解決硬錯誤頁,從磁盤上讀取的頁數(shù)5. Pagereads/sec為了解決硬錯誤頁,從磁盤上讀取的次數(shù)6. Cachebytes文件系統(tǒng)緩存,默認(rèn)情況下為50%的可用物理內(nèi)存7. Poolpagedbytes分頁池中的字節(jié)數(shù)8. Poolnonpagedbytes非分頁池中的字節(jié)數(shù)9.2.2 Process(進(jìn)程):1. Pagefaults/sec每秒出錯頁面的平均數(shù)量2. Privatebytes此進(jìn)程所分配的無法與其

44、他進(jìn)程共享的當(dāng)前字節(jié)數(shù)量3. Workset處理線程最近使用的內(nèi)存頁9.2.3 Processor(處理器):1. %processortimecpu利用率2. Processorqueuelength判斷CPU瓶頸3. Interrupt/sec處理器接收并維護(hù)硬件中斷的平均值4. %usertime處理器處于用戶模式的時間百分比5. %privilegedtime處理線程執(zhí)行代碼所花時間的百分比6. %interruptetime處理器在實例間隔期間接受和服務(wù)硬件中斷的時7. %DPCtime指在實例間隔期間,處理器用在延緩程序調(diào)用(DPC)接收和提供服務(wù)的時間百分比8. Queuelen

45、gth指跟蹤服務(wù)器工作隊列當(dāng)前長度的計數(shù)器,該數(shù)值會顯示出處理器瓶頸9.2.4 Physicaldisk(磁盤):1. %disktime指所選磁盤驅(qū)動器忙于讀或?qū)懭胝埱筇峁┨峁┓?wù)所用的時間的百分比2. Averagediskqueuelength表示磁盤為讀取和寫入請求提供服務(wù)所用時間的百分比3. Averagediskreadqueuelength磁盤讀取請求的平均數(shù)4. Averagediskwritequeuelength磁盤寫入請求的平均數(shù)5. Averagedisksec/read磁盤中讀取數(shù)據(jù)的平均時間6. Averagedisksec/transer磁盤中寫入數(shù)據(jù)的平均時間9

46、.2.5 NetworkInterface(網(wǎng)絡(luò))Bytetotal/sec網(wǎng)絡(luò)中接收和發(fā)送字節(jié)的速度9.3性能測試結(jié)果分析9.3.1常見圖標(biāo)解讀1. Vusers(虛擬用戶數(shù))Runningvusers(負(fù)載過程中虛擬用戶運行情況)Rendezvous(負(fù)載過程中集合點下的虛擬用戶數(shù))2. Errors(錯誤統(tǒng)計)3. Transactions(事物)averagetransactionresponsetime(平均事務(wù)響應(yīng)時間)transactionspersecond(TPS每秒事物數(shù))transactionsummary(事務(wù)概要說明)transactionperformancesum

47、mary(事務(wù)性能概要)transactionresponsetimeunderload(在用戶負(fù)載下事務(wù)的響應(yīng)時間)transactionresponsetime(事務(wù)響應(yīng)時間的百分比)transactionresponsetime(distribution)(每個時間段上的事務(wù)數(shù))4. webresources(網(wǎng)頁資源信息)hitspersecond(每秒點擊數(shù))throughput(吞吐量)HTTPresponsepersecond(每秒HTTP響應(yīng)數(shù))Conllections(連接數(shù))Connectionspersecond(每秒連接數(shù))5. Webpagediagnostics(網(wǎng)頁分析)Webpagediagnostics(網(wǎng)頁分析)Downloadtime(下載時間分析)Component(overtime)(組件隨時間變化)Downloadtime(overtime)(下載時間隨時間變化)Timetofirstbuffer(overtime)(第一次緩沖隨時間變化)Pagedownloadtimebreakdown(頁面

溫馨提示

  • 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

提交評論