LoadRunner基礎(chǔ).ppt_第1頁
LoadRunner基礎(chǔ).ppt_第2頁
LoadRunner基礎(chǔ).ppt_第3頁
LoadRunner基礎(chǔ).ppt_第4頁
LoadRunner基礎(chǔ).ppt_第5頁
已閱讀5頁,還剩49頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

loadrunner基礎(chǔ)培訓(xùn),loadrunner基礎(chǔ)培訓(xùn),性能測(cè)試簡(jiǎn)介,性能測(cè)試相關(guān)術(shù)語:響應(yīng)時(shí)間、并發(fā)用戶數(shù)、事務(wù)響應(yīng)時(shí)間、吞吐量、tps(每秒事務(wù)響應(yīng)數(shù))、性能計(jì)數(shù)器等。性能測(cè)試方法:負(fù)載測(cè)試、壓力測(cè)試、配置測(cè)試、并發(fā)測(cè)試、可靠性測(cè)試等。應(yīng)用領(lǐng)域:能力驗(yàn)證、規(guī)劃能力、性能調(diào)優(yōu)、缺陷發(fā)現(xiàn)。性能測(cè)試工具架構(gòu):一般包括以下部件:虛擬用戶腳本產(chǎn)生器(virtualusergenerator)、壓力產(chǎn)生器(player)、用戶代理(agent)、壓力調(diào)度和監(jiān)控系統(tǒng)(conductor)、壓力結(jié)果分析工具(analysis)。,性能測(cè)試是利用產(chǎn)品、人員和流程來降低應(yīng)用程序、升級(jí)程序或補(bǔ)丁程序部署風(fēng)險(xiǎn)的一種手段。性能測(cè)試的主要思想是通過產(chǎn)生模擬真實(shí)業(yè)務(wù)的壓力對(duì)被測(cè)系統(tǒng)進(jìn)行加壓,研究被測(cè)系統(tǒng)在不同壓力情況下的表現(xiàn),找出其潛在的瓶頸。,loadrunner簡(jiǎn)介,loadrunner是一種預(yù)測(cè)系統(tǒng)行為和性能的負(fù)載測(cè)試工具。它通過模擬實(shí)際用戶的操作行為和實(shí)行實(shí)時(shí)性能監(jiān)測(cè),來幫助測(cè)試人員更快的查找和發(fā)現(xiàn)問題。loadrunner適用于各種體系架構(gòu),能支持廣泛的協(xié)議和技術(shù),為測(cè)試的特殊環(huán)境提供特殊的解決方案。通過使用loadrunner,企業(yè)能最大限度地縮短測(cè)試時(shí)間,優(yōu)化性能并加速應(yīng)用系統(tǒng)的發(fā)布周期。loadrunner提供了3大主要模塊,這3個(gè)模塊既可以作為獨(dú)立的工具分別完成各自的功能,又可以作為loadrunner的一部分彼此銜接,與其他模塊共同完成軟件性能的整體測(cè)試。這3大模塊分別是:virtualusergenerator用于錄制性能測(cè)試腳本loadrunnercontroller用于創(chuàng)建、運(yùn)行和監(jiān)控場(chǎng)景l(fā)oadrunneranalysis用于分析性能測(cè)試結(jié)果loadrunner的安裝過程比較簡(jiǎn)單,運(yùn)行setup.exe,點(diǎn)擊“l(fā)oadrunner完整安裝”,按照向?qū)е鸩桨惭b就可以了。提示:建議安裝過程關(guān)閉360等殺毒軟件。否則可能出現(xiàn)安裝后,用controller創(chuàng)建場(chǎng)景報(bào)錯(cuò):failedtoconnecttoloadrunnercontroller,控制器無法使用。,loadrunner簡(jiǎn)介,loadrunner常用術(shù)語:1.場(chǎng)景(scenario):場(chǎng)景即測(cè)試場(chǎng)景。在loadrunner的controller部件中,可以設(shè)計(jì)與執(zhí)行用例的場(chǎng)景,設(shè)置場(chǎng)景的步驟主要包括:在controller中選擇虛擬用戶腳本、設(shè)置虛擬用戶數(shù)量、配置虛擬用戶運(yùn)行時(shí)的行為、選擇負(fù)載發(fā)生器(loadgenerator)、設(shè)置執(zhí)行時(shí)間等。2.負(fù)載發(fā)生器(loadgenerator):用來產(chǎn)生壓力的機(jī)器,受controller控制,可以使用戶腳本在不同的主機(jī)上執(zhí)行。在性能測(cè)試工作中,通常由一個(gè)controller控制多個(gè)loadgenerator以對(duì)被測(cè)試系統(tǒng)進(jìn)行加壓。3.虛擬用戶(virtualuser/vuser):對(duì)應(yīng)于現(xiàn)實(shí)中的真實(shí)用戶,使用loadrunner模擬的用戶稱為虛擬用戶。性能測(cè)試模擬多個(gè)用戶操作可以理解為:這些虛擬用戶在跑腳本,以模擬多個(gè)真正用戶的行為。4.虛擬用戶腳本(vuserscript):通過vusergenerator錄制或開發(fā)的腳本。這些腳本用來模擬用戶的行為。,loadrunner簡(jiǎn)介,5.事務(wù)(transaction):測(cè)試人員可以將一個(gè)或多個(gè)操作步驟定義為一個(gè)事務(wù),可以通俗的理解事務(wù)為“人為定義的一系列請(qǐng)求(請(qǐng)求可以是一個(gè)或者多個(gè))”。在程序上,事務(wù)表現(xiàn)為被開始標(biāo)記和結(jié)束標(biāo)記圈定的一段代碼區(qū)塊。loadrunner根據(jù)事務(wù)的開頭和結(jié)尾標(biāo)記,計(jì)算事務(wù)響應(yīng)時(shí)間、成功/失敗的事務(wù)數(shù)。6.思考時(shí)間(thinktime):即請(qǐng)求間的停頓時(shí)間。實(shí)際中,用戶在進(jìn)行一個(gè)操作后往往會(huì)停頓然后再進(jìn)行下一個(gè)操作,為了更真實(shí)的模擬這種用戶行為而引進(jìn)該概念。在虛擬用戶腳本中用函數(shù)lr_think_time()來模擬用戶處理過程,執(zhí)行該函數(shù)時(shí)用戶線程會(huì)按照相應(yīng)的time值進(jìn)行等待。7.集合點(diǎn)(rendezvous):設(shè)集合點(diǎn)是為了更好模擬并發(fā)操作。設(shè)了集合點(diǎn)后,運(yùn)行過程中多個(gè)用戶可以在集合點(diǎn)等待到一定條件后再一起發(fā)后續(xù)的請(qǐng)求。集合點(diǎn)在虛擬用戶腳本中對(duì)應(yīng)函數(shù)lr_rendezvous()。8.事務(wù)響應(yīng)時(shí)間:事務(wù)響應(yīng)時(shí)間是一個(gè)統(tǒng)計(jì)量,是評(píng)價(jià)系統(tǒng)性能的重要參數(shù)。定義好事務(wù)后,在場(chǎng)景執(zhí)行過程和測(cè)試結(jié)果分析中即可以看到對(duì)應(yīng)事務(wù)的響應(yīng)時(shí)間。通過對(duì)關(guān)鍵或核心事務(wù)的執(zhí)行情況進(jìn)行分析,以定位是否存在性能問題。,loadrunner測(cè)試流程,第一步,第二步,第三步,第四步,第五步,規(guī)劃測(cè)試(計(jì)劃、用例),創(chuàng)建vu腳本,定義場(chǎng)景,運(yùn)行場(chǎng)景,分析結(jié)果,loadrunner測(cè)試流程,規(guī)劃測(cè)試確定測(cè)試要求,如并發(fā)用戶數(shù)量、典型業(yè)務(wù)場(chǎng)景流程;測(cè)試計(jì)劃;設(shè)計(jì)用例;創(chuàng)建vuser腳本使用virtualusergenerator錄制、編輯和完善測(cè)試腳本。定義場(chǎng)景使用loadrunnercontroller設(shè)置測(cè)試場(chǎng)景。運(yùn)行場(chǎng)景使用loadrunnercontroller驅(qū)動(dòng)、管理并監(jiān)控場(chǎng)景的運(yùn)行。分析結(jié)果使用loadrunneranalysis生成報(bào)告和圖表并評(píng)估性能。為了更好說明loadrunner的功能以及測(cè)試流程,我們將在營銷2.02進(jìn)行一次簡(jiǎn)單的測(cè)試過程,過程中,將向您介紹如何使用loadrunner組件(vugen、controller和analysis)。,規(guī)劃測(cè)試,好的測(cè)試規(guī)劃,能夠指導(dǎo)整個(gè)測(cè)試過程,以更好的收集到測(cè)試目標(biāo)要求的性能數(shù)據(jù)。規(guī)劃可以包括測(cè)試的計(jì)劃、用例的設(shè)計(jì)、場(chǎng)景的設(shè)計(jì)、性能計(jì)數(shù)器設(shè)置的設(shè)計(jì)等。以下列出幾點(diǎn)規(guī)劃事項(xiàng):1.測(cè)試用例:測(cè)試用例一般根據(jù)需要測(cè)試的功能進(jìn)行設(shè)計(jì),這里測(cè)試過程的用例為:進(jìn)入登錄頁面-填寫用戶名密碼,登錄-單擊新增按鈕-填寫門店信息,保存。2.場(chǎng)景設(shè)計(jì):一般情況會(huì)設(shè)計(jì)兩種加壓方式進(jìn)行測(cè)試:瞬時(shí)加壓(多人同時(shí)進(jìn)行某項(xiàng)業(yè)務(wù)操作)與逐漸加壓(多人先后進(jìn)行某項(xiàng)業(yè)務(wù)操作,操作時(shí)間間隔根據(jù)計(jì)劃設(shè)定)。這里不詳細(xì)說明。3.性能計(jì)數(shù)器方面:可以收集cpu時(shí)間、內(nèi)存、硬盤、網(wǎng)絡(luò)、數(shù)據(jù)庫參數(shù)、iis參數(shù)等。這里不詳細(xì)說明。,創(chuàng)建vuser腳本準(zhǔn)備,在錄制腳本前,先確定性能測(cè)試各種文件的存儲(chǔ)結(jié)構(gòu),以便后續(xù)可以清晰查找各種需要信息。使用相對(duì)路徑,便于測(cè)試環(huán)境的遷移。暫未整理設(shè)置步驟,待研究使用絕對(duì)路徑(推薦放在c盤符下,理由如下:絕大多數(shù)windowns的操作系統(tǒng)都有c盤符,更大限度的方便測(cè)試環(huán)境的遷移。但也要考慮到目標(biāo)環(huán)境的c盤情況。)。如果使用絕對(duì)路徑,推薦的存儲(chǔ)結(jié)構(gòu)為一個(gè)父目錄存儲(chǔ)所有當(dāng)次性能測(cè)試的文件,比如這個(gè)目錄名可以為“projectname_perf”,然后在“projectname_perf”下新建5個(gè)目錄,分別存放腳本、參數(shù)文件、場(chǎng)景、場(chǎng)景運(yùn)行結(jié)果、分析報(bào)告,名字分別為test_script、test_parameter_list、test_scenario、test_scenario_result、test_report(這里的命名規(guī)律為:test開頭,然后加上該目錄所存放內(nèi)容的名稱,每個(gè)單詞大寫字母開頭,用下劃線隔開)。,loadrunner腳本開發(fā)步驟:錄制基本腳本增強(qiáng)/編輯腳本配置運(yùn)行時(shí)設(shè)置試運(yùn)行腳本,創(chuàng)建vuser腳本錄制基本腳本,1.啟動(dòng)loadrunner選擇開始程序hploadrunnerloadrunner,打開hploadrunner11窗口。2.打開vugen在loadrunnerlauncher窗格中,單擊create/editscripts,鏈接啟動(dòng)virtualusergenerator起始頁。,創(chuàng)建vuser腳本錄制基本腳本,3.創(chuàng)建一個(gè)空白web腳本選擇filenew菜單,或點(diǎn)擊按鈕,打開newvirtualuser對(duì)話框,顯示可供選擇腳本的協(xié)議。,對(duì)于常用的應(yīng)用軟件,我們可以根據(jù)被測(cè)應(yīng)用是b/s結(jié)構(gòu)還是c/s結(jié)構(gòu)來選擇協(xié)議。如果是b/s結(jié)構(gòu),就要選擇web(http/html)協(xié)議。如果是c/s結(jié)構(gòu),則可以根據(jù)后端數(shù)據(jù)庫的類型來選擇,如mssqlserver協(xié)議用于測(cè)試后臺(tái)數(shù)據(jù)庫為sqlserver的應(yīng)用;對(duì)于沒有數(shù)據(jù)庫的windows應(yīng)用,可以選擇windowssockets協(xié)議。根據(jù)選擇協(xié)議的不同,virtualusergenerator會(huì)使用不同的方式和界面引導(dǎo)用戶完成腳本的錄制。我們測(cè)試環(huán)境的營銷系統(tǒng)基于b/s結(jié)構(gòu),因此我們選擇web(http/html)協(xié)議啟動(dòng)被測(cè)應(yīng)用頁面的對(duì)話框。,創(chuàng)建vuser腳本錄制基本腳本,4.錄制前的設(shè)置選擇web(http/html),點(diǎn)擊create按鈕,打開startrecording對(duì)話框。選擇的協(xié)議不同,打開的窗口就會(huì)不同,實(shí)例是針對(duì)web錄制的對(duì)話框。,recordintoaction實(shí)例可將登錄營銷系統(tǒng)存放在vuser_init,新增門店存放在action,注銷存放在vuser_end。,vugen的腳本分為三個(gè)部分:vuser_init,action,vuser_end。其中vuser_init和vuser_end都只能存在一個(gè),而action可分成無數(shù)多個(gè)部分,可以通過點(diǎn)擊旁邊的【new】按鈕來創(chuàng)建action。在迭代執(zhí)行測(cè)試腳本時(shí),vuser_init和vuser_end中的內(nèi)容只會(huì)執(zhí)行一次,迭代的是action部分。,創(chuàng)建vuser腳本錄制基本腳本,在startrecording對(duì)話框,點(diǎn)擊options按鈕,進(jìn)入錄制選項(xiàng)設(shè)置。一般要設(shè)置以下選項(xiàng):,1)recordinghttp/htmllevel中設(shè)置腳本的顯示形式:url_basedscript。,2)advancedsupportcharset中設(shè)置編碼格式:utf-8;,基于瀏覽器的應(yīng)用程序推薦使用html-basedscript。不是基于瀏覽器的應(yīng)用程序推薦使用url-basedscript?;跒g覽器的應(yīng)用程序中包含了javascript,并且該腳本向服務(wù)器發(fā)送了請(qǐng)求,比如datagrid的分頁按鈕等,推薦使用url-basedscript?;跒g覽器的應(yīng)用程序中使用了https安全協(xié)議,建議使用url-basedscript。,提示:錄制web腳本時(shí),生成的腳本中存在亂碼該如何解決?新建腳本-選擇協(xié)議(http)-選項(xiàng)-高級(jí)-選擇“支持字符集”并點(diǎn)選“utf-8”。在回放腳本之前:vuser-運(yùn)行時(shí)設(shè)置-瀏覽器-瀏覽器仿真-更改-使用瀏覽器-語言下來選擇“中文(中國)”。,創(chuàng)建vuser腳本錄制基本腳本,5.錄制在startrecording對(duì)話框,點(diǎn)擊ok按鈕,開始錄制。系統(tǒng)自動(dòng)彈出ie,加載營銷系統(tǒng)的登錄界面。在錄制的過程中,屏幕上有一個(gè)懸浮的錄制工具欄,是腳本錄制過程中測(cè)試人員和vugen交互的主要平臺(tái)。,熟悉錄制腳本工具欄:,創(chuàng)建vuser腳本錄制基本腳本,實(shí)例操作:登錄系統(tǒng)新增門店注銷通過操作被測(cè)系統(tǒng),操作的每一個(gè)步驟都被記錄,在錄制的過程中,可以在相應(yīng)的步驟插入action、事務(wù)、檢查點(diǎn)、集合點(diǎn)等信息。錄制完成后單擊按鈕,loadrunner開始生成腳本,生成的腳本如圖所示。,熟悉兩種腳本查看方式:scriptview可以查看全部錄制的腳本代碼(左圖)treeview可以查看每個(gè)url獲取來的頁面(右圖),創(chuàng)建vuser腳本增強(qiáng)/編輯腳本,1.插入事務(wù)插入事務(wù)是用于把功能分為若干部分,在統(tǒng)計(jì)性能指標(biāo)時(shí),可以對(duì)不同的事務(wù)分別作統(tǒng)計(jì)。如果對(duì)腳本不是太熟悉,可以在錄制的時(shí)候,逐步插入。也可以在錄制完成之后,在腳本中插入。,在錄制時(shí)插入操作為:錄制某個(gè)功能開始前單擊插入事務(wù)的起始點(diǎn)錄制,直到某個(gè)功能結(jié)束插入事務(wù)的結(jié)束點(diǎn)。,在腳本的插入方式為:插入事務(wù)起始點(diǎn):?jiǎn)螕裟硞€(gè)功能起始前的空白處右鍵鼠標(biāo)insertstarttransaction命名ok。系統(tǒng)自動(dòng)在腳本語句中插入如下語句:lr_start_transaction(登錄);,插入事務(wù)結(jié)束點(diǎn):?jiǎn)螕裟硞€(gè)功能結(jié)束后的空白處右鍵鼠標(biāo)insertendtransaction命名(與起始點(diǎn)的名字一致)ok。系統(tǒng)自動(dòng)在腳本語句中插入如下語句:lr_end_transaction(登錄,lr_auto);,實(shí)例中可以分別設(shè)置兩個(gè)事務(wù):登錄、新增門店。,創(chuàng)建vuser腳本增強(qiáng)/編輯腳本,2.參數(shù)化參數(shù)化的作用是在進(jìn)行場(chǎng)景執(zhí)行的時(shí)候,每個(gè)不同的虛擬用戶可以按照參數(shù)的讀取策略讀取到參數(shù)值,以模擬不同用戶在提交或者讀取不同的數(shù)據(jù)。每個(gè)用戶在界面上讀取和提交的信息都不太相同,因此一般都需要參數(shù)化,其它與輸入信息對(duì)應(yīng)的比如用戶id之類的信息也需要參數(shù)化;另外,錄制環(huán)境絕大多數(shù)情況下與執(zhí)行環(huán)境不一致,因此一般需要對(duì)ip、端口或者域名做參數(shù)化。,下面將分四部分來介紹參數(shù)化的方法和實(shí)施過程:確定需要參數(shù)化的常量準(zhǔn)備數(shù)據(jù)對(duì)腳本進(jìn)行參數(shù)化還原初始字符串,創(chuàng)建vuser腳本增強(qiáng)/編輯腳本,確定需要參數(shù)化的常量,打開腳本后,首先要確定哪些常量需要參數(shù)化。例如我們的營銷系統(tǒng)登錄的腳本代碼:,可以看出,在web_submit_data函數(shù)中,兩條語句包含了兩個(gè)常量:e號(hào)和密碼。name=txtusernumber,value=220999,enditem,name=txtpassword,value=888888,enditem,當(dāng)我們想模擬多個(gè)不同的用戶來運(yùn)行登錄腳本的時(shí)候,需要對(duì)value=220999和value=888888進(jìn)行參數(shù)化。另外,新增門店的腳本代碼中,門店名稱具有必填+唯一的屬性,也需要做參數(shù)化設(shè)置。其它還有哪些常量需要參數(shù)化,可以根據(jù)業(yè)務(wù)場(chǎng)景來確定。,創(chuàng)建vuser腳本增強(qiáng)/編輯腳本,準(zhǔn)備數(shù)據(jù)根據(jù)實(shí)例,我們需要準(zhǔn)備e號(hào)、密碼、門店名稱這三個(gè)參數(shù)的數(shù)據(jù)。,對(duì)于e號(hào)和密碼,我們準(zhǔn)備下述可以直接登錄系統(tǒng)(無需選擇企業(yè))的e號(hào)和密碼:220999888888210996888888220995888888210998888888220990888888220997888888220991888888210993888888220994888888220992888888,對(duì)于門店名稱,我們準(zhǔn)備下述不同的名稱:天河城東門店廣百百貨體育西路店正佳廣場(chǎng)店天河城旗艦店體育西路門店石牌橋分店崗頂旗艦店天河北路分店體育東路店珠江新城總店,創(chuàng)建vuser腳本增強(qiáng)/編輯腳本,對(duì)腳本進(jìn)行參數(shù)化,以e號(hào)參數(shù)化為例,參數(shù)化過程如下:1)選中220999右擊鼠標(biāo)在右鍵菜單上選擇replacewithaparameter。2)在彈出窗口填寫參數(shù)名稱,或選擇一個(gè)已經(jīng)存在的參數(shù)名。,常用的參數(shù)類型:data/time:使用當(dāng)前日期/時(shí)間替換所選常量。groupname:使用vuser組的名稱替換所選常量。loadgeneratorname:使用vuser腳本的負(fù)載發(fā)生器名替換所選常量。iterationnumber:使用當(dāng)前的迭代編號(hào)替換所選常量。randomnumber:使用一個(gè)隨機(jī)生成的整數(shù)替換所選常量,可以通過參數(shù)屬性設(shè)定參數(shù)的范圍。uniquenumber:使用一個(gè)唯一編號(hào)替換所選常量,可以通過參數(shù)屬性設(shè)定參數(shù)的第一個(gè)值和遞增的規(guī)則。vuserid:使用運(yùn)行腳本的虛擬用戶id來代替選擇的常量。file:采用外部的數(shù)據(jù)來代替,可以使用單獨(dú)的文件,也可以使用現(xiàn)成的數(shù)據(jù)庫中獲取數(shù)據(jù)。userdefinedfunction:從用戶開發(fā)的dll文件中獲取數(shù)據(jù)。,實(shí)例中填寫參數(shù)名稱:usernumber;選擇參數(shù)類型file,來寫入已準(zhǔn)備好的數(shù)據(jù)。,創(chuàng)建vuser腳本增強(qiáng)/編輯腳本,3)單擊窗口的properties按鈕,設(shè)置parameter的properties。,文件file:參數(shù)化結(jié)束后,腳本保存的根目錄下會(huì)自動(dòng)生成一個(gè)以參數(shù)名稱命名的參數(shù)文件;也可以直接選擇一個(gè)已準(zhǔn)備好的參數(shù)文件。選擇參數(shù)列selectcolumn:bynumber:以列號(hào)為參數(shù)列。byname:以列名為參數(shù)列。文件格式:column:參數(shù)之間的分隔符:逗號(hào)、空格、tab。firstdata:從第幾行讀取數(shù)據(jù)。選擇參數(shù)分配方法selectnextrow:sequential:順序的分配vuser參數(shù)值。當(dāng)正在運(yùn)行的vuser訪問數(shù)據(jù)表格時(shí),它將會(huì)提取下一個(gè)可用的數(shù)據(jù)行。random:當(dāng)腳本開始運(yùn)行時(shí),“隨機(jī)”的為每個(gè)vuser分配一個(gè)數(shù)據(jù)表格中的隨機(jī)值。unique:為vuser的參數(shù)分配一個(gè)“唯一”的順序值。注意,參數(shù)數(shù)量一定要大于等于“vuser量*迭代數(shù)量”。選擇參數(shù)更新方法updatevalueon:eachiteration:腳本每次迭代都順序的使用數(shù)據(jù)表格中的下一個(gè)新值。eachoccurrence:在迭代中只要遇到該參數(shù)就重新取值。once:在所有的迭代中都使用同一個(gè)值。當(dāng)超出范圍時(shí)whenoutofvalues:(選擇數(shù)據(jù)為unique時(shí)才可用到)abortvuser:中止。continueinacyclicmanner:繼續(xù)循環(huán)取值。continuewithlastvalue:取最后一個(gè)值。,設(shè)置完成后,被參數(shù)化的值會(huì)被參數(shù)名代替。實(shí)例中設(shè)置參數(shù)名為usernumber,腳本原先220999部分變?yōu)榱俗霞t色的usernumber。,創(chuàng)建vuser腳本增強(qiáng)/編輯腳本,4)如果其它地方也用到這個(gè)相同的參數(shù),則可以進(jìn)行替換。,方法一:選中需要被替換的常量右鍵鼠標(biāo)useexistingparameter選擇已經(jīng)存在的參數(shù)名。,方法二:選中這個(gè)設(shè)置好的參數(shù),右鍵鼠標(biāo)replacemoreoccurrences逐個(gè)替換(如果確定所有都需替換可以全部替換)。,創(chuàng)建vuser腳本增強(qiáng)/編輯腳本,還原初始字符串,通過vugen,可以還原最初錄制的字符串從而撤消參數(shù)化。方法為:在腳本視圖中,右鍵單擊該參數(shù)并選擇“restoreoriginalvalue()”。,設(shè)置完成后,該參數(shù)被還原為初始字符串。實(shí)例中的參數(shù)usernumber,被還原為初始的220999。,創(chuàng)建vuser腳本增強(qiáng)/編輯腳本,3.插入集合點(diǎn)插入集合點(diǎn)是一種增大并發(fā)壓力的方式。腳本運(yùn)行時(shí),只有當(dāng)?shù)竭_(dá)集合點(diǎn)的虛擬用戶數(shù)滿足設(shè)置要求時(shí),才會(huì)繼續(xù)往下運(yùn)行。插入集合點(diǎn)可以在錄制的時(shí)候,逐步插入,也可以在錄制完成之后,在腳本中插入。需要注意的是,集合點(diǎn)只能插入action部分的腳本中,不能插入vuser_init和vuser_end兩部分腳本中。,在錄制時(shí)插入操作為:錄制某個(gè)功能開始前單擊插入集合點(diǎn)命名ok在腳本的插入方式為:?jiǎn)螕粜枰迦爰宵c(diǎn)的功能開始前的空白處右鍵鼠標(biāo)insertrendezvous命名ok。,系統(tǒng)自動(dòng)在腳本語句中插入如下語句:lr_rendezvous(新增門店);實(shí)例中,可以在新增門店的功能前插入集合點(diǎn)。,創(chuàng)建vuser腳本增強(qiáng)/編輯腳本,4.關(guān)聯(lián)關(guān)聯(lián)的含義是,在腳本回放過程中,客戶端發(fā)出請(qǐng)求,通過關(guān)聯(lián)函數(shù)所定義的左右邊界值(也就是關(guān)聯(lián)規(guī)則),在服務(wù)器所響應(yīng)的內(nèi)容中查找,得到相應(yīng)的值,以變量的形式替換錄制時(shí)的靜態(tài)值,從而向服務(wù)器發(fā)出正確的請(qǐng)求。最最典型的是用于sessionid。常用的關(guān)聯(lián)技術(shù)有三種:錄制中關(guān)聯(lián)、錄制后關(guān)聯(lián)、手動(dòng)關(guān)聯(lián)。,錄制中關(guān)聯(lián)設(shè)置錄制前的recordingoptionscorrelation,可以勾選lr已有的關(guān)聯(lián)規(guī)則,也可以新建規(guī)則;錄制過程中,關(guān)聯(lián)自動(dòng)在腳本體現(xiàn)。,創(chuàng)建vuser腳本增強(qiáng)/編輯腳本,錄制后關(guān)聯(lián)關(guān)聯(lián)的使用可以在腳本錄制完成后,回放一次腳本,然后在腳本的菜單的vuserscanscriptforcorrelations進(jìn)行設(shè)置。,通過回放腳本和掃描關(guān)聯(lián),系統(tǒng)嘗試找到錄制與執(zhí)行時(shí)服務(wù)器響應(yīng)的差異部分,找到需要關(guān)聯(lián)的數(shù)據(jù),并建立關(guān)聯(lián)。,創(chuàng)建vuser腳本增強(qiáng)/編輯腳本,手動(dòng)關(guān)聯(lián)錄制前關(guān)聯(lián)與錄制后關(guān)聯(lián)都屬于自動(dòng)關(guān)聯(lián)的范疇。如果出現(xiàn)自動(dòng)關(guān)聯(lián)不能解決的問題,就需要使用手動(dòng)關(guān)聯(lián)的方法。手動(dòng)關(guān)聯(lián)的一般步驟如下:1)錄制兩份腳本,保證業(yè)務(wù)流程和使用的數(shù)據(jù)相同。2)使用wintiff工具比較兩份腳本,對(duì)兩份腳本中不同的地方進(jìn)行判斷,找到需要關(guān)聯(lián)的數(shù)據(jù)。3)找到左邊界和右邊界字符串,寫出關(guān)聯(lián)函數(shù)。4)在腳本中需要關(guān)聯(lián)的數(shù)據(jù)前面插入關(guān)聯(lián)函數(shù)。5)用關(guān)聯(lián)函數(shù)中定義的參數(shù)取代腳本中需要關(guān)聯(lián)的數(shù)據(jù)。具體方法不詳述,可查閱相關(guān)資料。,5.其他前面講解了插入事務(wù)、插入集合點(diǎn)、參數(shù)化、建立關(guān)聯(lián)的方法,一般的腳本都需要做以上幾項(xiàng)的修改工作。此外,還可以通過插入注釋、插入檢查點(diǎn)來完善腳本。另外腳本出現(xiàn)問題了,也可以通過打印信息來調(diào)試腳本。插入注釋:在腳本中插入注釋,可以清晰找到需要修改的位置,增強(qiáng)腳本的可讀性。插入檢查點(diǎn):在腳本中設(shè)置檢查點(diǎn)函數(shù),將返回值的結(jié)果反映在controller的狀態(tài)面板上和analysis統(tǒng)計(jì)結(jié)果中,由此可以判斷數(shù)據(jù)傳遞的正確性。具體方法不再詳述,可查閱相關(guān)資料。,創(chuàng)建vuser腳本配置運(yùn)行時(shí)設(shè)置,在vugen中,選擇vuserrun-timesettings,可以設(shè)定腳本回放過程的一些參數(shù)。如iterationcount(迭代次數(shù))、thinktime(思考時(shí)間)、errorhandling(錯(cuò)誤處理)、multithreading(運(yùn)行方式)等。,1.iterationcount(迭代次數(shù))選擇general:runlogic說明:設(shè)定每個(gè)action的迭代次數(shù)。,創(chuàng)建vuser腳本配置運(yùn)行時(shí)設(shè)置,2.thinktime(思考時(shí)間)選擇general:thinktime說明:設(shè)定腳本回放時(shí)對(duì)思考時(shí)間的處理方式。,ignorethinktime腳本回放時(shí),將不執(zhí)行l(wèi)r_think_time()函數(shù),這樣會(huì)給服務(wù)器產(chǎn)生更大的壓力。replaythinktime腳本回放時(shí),執(zhí)行l(wèi)r_think_time()函數(shù),具體執(zhí)行方式有一下3種:1)按照錄制時(shí)獲取的thinktime值回放。2)按照錄制時(shí)獲取值的整數(shù)倍數(shù)回放腳本。3)制定一個(gè)最大和最小的比例,按照兩者之間的隨機(jī)值回放腳本。limitthinktimeto選項(xiàng),用于限制thinktime的最大值,腳本回放過程中,如果發(fā)現(xiàn)有超過這個(gè)值的,用這個(gè)最大值替代。,創(chuàng)建vuser腳本配置運(yùn)行時(shí)設(shè)置,3.errorhandling(錯(cuò)誤處理)選擇general:miscellaneous說明:設(shè)定遇到錯(cuò)誤時(shí)的處理方式。,continueonerror遇到錯(cuò)誤時(shí)繼續(xù)運(yùn)行。failopentransactionsonlr_error_message執(zhí)行到事務(wù)中調(diào)用的lr_error_message()函數(shù)時(shí)將事務(wù)的結(jié)果置為failed。generatesnapshotonerror對(duì)錯(cuò)誤進(jìn)行快照。,4.multithreading(運(yùn)行方式)選擇general:miscellaneous說明:設(shè)定腳本是以多線程方式運(yùn)行還是以多進(jìn)程方式運(yùn)行。,runvuserasaprocess以多進(jìn)程方式運(yùn)行。runvuserasathread以多線程方式運(yùn)行。一般會(huì)選擇把虛擬用戶當(dāng)做進(jìn)程來處理,因?yàn)橄到y(tǒng)上線后,用戶的操作都是以進(jìn)程的方式進(jìn)行。待確認(rèn)。,創(chuàng)建vuser腳本試運(yùn)行腳本,1.腳本錄制完畢后,按f5鍵,或點(diǎn)擊菜單中的按鈕,可以試運(yùn)行腳本?;胤胚^程中vugen在下方同步打印日志。,2.如果需要查看不同的日志形式,可以在腳本頁面菜單的vuserruntime-settingslog選擇不同的項(xiàng),回放腳本時(shí)將打印不同級(jí)別的日志。,創(chuàng)建vuser腳本試運(yùn)行腳本,3.運(yùn)行結(jié)束后,系統(tǒng)會(huì)給出相應(yīng)的運(yùn)行結(jié)果,可以通過viewtestresults查看回放結(jié)果。,腳本修改完善的工作完成后,將腳本以有意義的單詞命名保存在約定的目錄當(dāng)中。實(shí)例的腳本可以命名為addstore,保存在test_script目錄下。,在vugen中試運(yùn)行腳本的作用,主要是查看錄制的腳本能否正常通過,如果有問題,系統(tǒng)會(huì)給出提示信息,并定位到出錯(cuò)的行上,便于用戶查找到錯(cuò)誤,修改完善測(cè)試腳本。,定義場(chǎng)景,腳本準(zhǔn)備完成后,可以根據(jù)場(chǎng)景用例設(shè)置場(chǎng)景。controller控制器提供了手動(dòng)和面向目標(biāo)兩種測(cè)試場(chǎng)景。手動(dòng)設(shè)計(jì)場(chǎng)景(manualscenario)最大的優(yōu)點(diǎn)是能夠更靈活地按照需求來設(shè)計(jì)場(chǎng)景模型,使場(chǎng)景能更好地接近用戶的真實(shí)使用。一般情況下使用手動(dòng)場(chǎng)景設(shè)計(jì)方法來設(shè)計(jì)場(chǎng)景。面向目標(biāo)場(chǎng)景(goalorientedscenario)則是測(cè)試性能是否能達(dá)到預(yù)期的目標(biāo),在能力規(guī)劃和能力驗(yàn)證的測(cè)試過程中經(jīng)常使用。本次介紹手動(dòng)設(shè)計(jì)場(chǎng)景的下述幾個(gè)步驟:創(chuàng)建場(chǎng)景設(shè)置schedule設(shè)置集合點(diǎn)多機(jī)聯(lián)合產(chǎn)生負(fù)載設(shè)置ip欺騙設(shè)置負(fù)載均衡設(shè)置windows資源監(jiān)控器,定義場(chǎng)景創(chuàng)建場(chǎng)景,controller控制器可以從程序中打開,然后選擇保存好的腳本;也可以從vugen中直接連接到該腳本的控制場(chǎng)景。實(shí)例從vugen中啟動(dòng)controller的步驟如下:1.單擊vugen菜單欄的toolscreatecontrollerscenario。2.在彈出窗口選擇虛擬用戶數(shù)、運(yùn)行結(jié)果保存目錄(按照事先約定選擇目錄,結(jié)果文件的命名最好包含用戶數(shù)/加壓方式/場(chǎng)景名)、負(fù)載產(chǎn)生的負(fù)載機(jī)所在地。,實(shí)例的結(jié)果文件可以命名為:addstore_result_instantandgradual_10,保存至test_scenario_result目錄下。,定義場(chǎng)景創(chuàng)建場(chǎng)景,3.在createscenario窗口中點(diǎn)擊ok,鏈接啟動(dòng)loadrunnercontroller。,默認(rèn)顯示用戶組模式,可通過菜單scenarioconvertscenariotothepercentagemode切換為百分比模式。,定義場(chǎng)景設(shè)置schedule,1.設(shè)置場(chǎng)景的基本信息schedulename:設(shè)置場(chǎng)景名稱。scheduleby:選擇按場(chǎng)景計(jì)劃或按用戶組計(jì)劃。runmode:real-worldschedule是真實(shí)場(chǎng)景模式,可以通過增加action來增加多個(gè)用戶。basicschedule是我們以前用的經(jīng)典模式,只能設(shè)置一次負(fù)載的上升和下降。2.設(shè)置場(chǎng)景的各類參數(shù)雙擊globalschedule中的對(duì)應(yīng)行,可以設(shè)置schedule的各類參數(shù)。,在controller的scenarioschedule中,可以設(shè)置場(chǎng)景的各項(xiàng)計(jì)劃,如虛擬用戶的加載方式、釋放策略等。,定義場(chǎng)景設(shè)置schedule,initialize:初始化是指運(yùn)行腳本中的vuser_init操作,為測(cè)試準(zhǔn)備vuser和loadgenerator。,startvusers:設(shè)置場(chǎng)景vuser加載方式。,定義場(chǎng)景設(shè)置schedule,stopvusers:設(shè)置場(chǎng)景執(zhí)行完成后虛擬用戶釋放的策略。,duration:設(shè)置場(chǎng)景持續(xù)運(yùn)行的情況。,定義場(chǎng)景設(shè)置schedule,根據(jù)前述scenarioschedule的設(shè)置方法,可以將實(shí)例中10個(gè)用戶新增門店的場(chǎng)景設(shè)計(jì)如下:,2)逐步加壓schedulename:gradual_10scheduleby:scenariorunmode:basicschedulestartvuser:2vusersevery00:00:30(hh:mm:ss),starttime:設(shè)置場(chǎng)景啟動(dòng)時(shí)間。,1)瞬時(shí)加壓schedulename:instant_10scheduleby:scenariorunmode:basicschedulestartvuser:simultaneously,定義場(chǎng)景設(shè)置集合點(diǎn),lr在運(yùn)行場(chǎng)景的時(shí)候,允許測(cè)試人員根據(jù)項(xiàng)目需要自己設(shè)定集合點(diǎn)的并發(fā)策略。單擊controller菜單欄的scenariorendezvous,可以查看場(chǎng)景中所有的集合點(diǎn)名稱、所屬腳本、當(dāng)前狀態(tài)和相關(guān)的虛擬用戶列表信息等,根據(jù)系統(tǒng)需求,還可以針對(duì)集合點(diǎn)的執(zhí)行進(jìn)行設(shè)定。,1.集合點(diǎn)設(shè)置單擊disable/enablerendezvous按鈕可以選定集合點(diǎn)是否啟用。單擊disable/enablevuser按鈕可以設(shè)定一個(gè)用戶是否參與到集合點(diǎn)中。單擊policy按鈕可以設(shè)定集合點(diǎn)執(zhí)行策略。,定義場(chǎng)景設(shè)置集合點(diǎn),2.集合點(diǎn)策略設(shè)置,第一項(xiàng):當(dāng)前所有用戶數(shù)的x%到達(dá)集合點(diǎn)時(shí),開始釋放等待的用戶并繼續(xù)執(zhí)行場(chǎng)景。第二項(xiàng):當(dāng)前正在運(yùn)行用戶數(shù)的x%到達(dá)集合點(diǎn)時(shí),開始釋放等待的用戶并繼續(xù)執(zhí)行場(chǎng)景。第三項(xiàng):當(dāng)x個(gè)用戶到達(dá)集合點(diǎn)時(shí),開始釋放等待的用戶并繼續(xù)執(zhí)行場(chǎng)景。timeoutbetweenvusers:設(shè)定一個(gè)超時(shí)時(shí)間,當(dāng)?shù)谝粋€(gè)用戶到達(dá)集合點(diǎn)時(shí),系統(tǒng)開始計(jì)時(shí),如果在這個(gè)設(shè)定的時(shí)間內(nèi)沒有達(dá)到指定的用戶數(shù),系統(tǒng)就不再等待,釋放用戶讓場(chǎng)景繼續(xù)執(zhí)行。,3.手動(dòng)釋放vuser在場(chǎng)景運(yùn)行過程中,點(diǎn)擊statusinformation列表的release按鈕,可以手動(dòng)釋放等待中的虛擬用戶。,定義場(chǎng)景多機(jī)聯(lián)合產(chǎn)生負(fù)載,為了避免一臺(tái)測(cè)試機(jī)器模擬的虛擬用戶數(shù)過多,他本身性能的下降直接影響測(cè)試效果,lr允許使用多臺(tái)機(jī)器運(yùn)行場(chǎng)景來均衡測(cè)試機(jī)器的負(fù)荷。只要一臺(tái)機(jī)器安裝了loadgenerator并啟動(dòng)了loadrunneragentprocess進(jìn)程,就可以被controller統(tǒng)一調(diào)度來運(yùn)行場(chǎng)景,controller負(fù)載收集統(tǒng)一的測(cè)試信息和執(zhí)行結(jié)果。單擊菜單scenarioloadgenerator,可以查看到所有已經(jīng)加載的loadgenerator信息。,name:loadgenerator所在的機(jī)器名稱。status:標(biāo)識(shí)了generator目前的狀態(tài)。platform:顯示了系統(tǒng)的平臺(tái)名稱。,單擊add按鈕,可以添加新的loadgenerator;單擊connect按鈕,lr的controller就會(huì)嘗試去連接選中的loadgenerator,如果連接成功就在status字段中顯示ready,如果失敗就會(huì)顯示failed。,定義場(chǎng)景設(shè)置ip欺騙,ip欺騙技術(shù)就是讓一個(gè)loadgenerator上的虛擬用戶模擬從不同的ip來向服務(wù)器發(fā)起請(qǐng)求,以達(dá)到以假亂真的目的。,1.配置ipspooferlr配置動(dòng)態(tài)ip的工具是程序組中的一個(gè)小工具ipwizard,它能夠指導(dǎo)用戶按步驟完成配置過程。,step1:選擇下述一項(xiàng)進(jìn)行設(shè)置。第一項(xiàng):用于創(chuàng)建一個(gè)新的設(shè)置,首次運(yùn)行時(shí)選用。第二項(xiàng):調(diào)用以前保存的設(shè)置。第三項(xiàng):將設(shè)置恢復(fù)為原始狀態(tài),此選項(xiàng)主要用于使用后釋放ip。,step2:輸入您的ip地址。這里主要用來檢測(cè)新的ip地址加到主機(jī)中后,server的路由表是否需要更新,如果server和client使用的是相同的子網(wǎng)掩碼,ipclass類型和網(wǎng)絡(luò),是無需更新的。,定義場(chǎng)景設(shè)置ip欺騙,step3:添加新的動(dòng)態(tài)ip,privateaddressspaces:選擇測(cè)試環(huán)境的ip地址類型。fromip:要使用ip段的第一個(gè)值。numbertoadd:要使用的ip地址的數(shù)目。submask:子網(wǎng)掩碼,一般采用默認(rèn)設(shè)置就可以了。如果選中verifythatnewipaddressarenotalreadyinuse,系統(tǒng)會(huì)在所選范圍內(nèi)檢測(cè)每個(gè)ip地址,為了避免沖突,lr只添加那些沒有被其他用戶使用的ip地址。如果已經(jīng)預(yù)先知道選擇范圍內(nèi)的某些地址可能被占用,那么在numberto文本框中輸入的ip地址的個(gè)數(shù)就要有相應(yīng)的增加。,定義場(chǎng)景設(shè)置ip欺騙,2.啟用ip欺騙在controller中勾選菜單scenarioenableipspoofer,就可以啟用ip欺騙了,在ip欺騙啟用后,controller狀態(tài)欄中會(huì)顯示相應(yīng)的狀態(tài)標(biāo)識(shí):。然后單擊菜單欄toolsoptions,在彈出的對(duì)話框中單擊general標(biāo)簽以設(shè)定ip地址的分配方式。,如果在run-timesetting中設(shè)置的是以多進(jìn)程的方式運(yùn)行,則這里就給每個(gè)進(jìn)程分配不同的ip地址;如果在run-timesetting中設(shè)置的是以多線程的方式運(yùn)行,則這里給每個(gè)線程分配不同的ip地址。只有在controller中勾選菜單toolsexpertmode,才能在options對(duì)話框中包含設(shè)定ip分配的選項(xiàng)。,定義場(chǎng)景設(shè)置負(fù)載均衡,這里的負(fù)載均衡是用來解決測(cè)試過程中,負(fù)載機(jī)分配不均的問題。方法為:先選擇scenarioconvertscenariotothepercentagemode,將場(chǎng)景模式由用戶組切換為百分比,然后在已經(jīng)添加好的loadgenerators機(jī)器列表中選擇需要的機(jī)器。這樣就可以保證負(fù)載機(jī)均勻地對(duì)服務(wù)器施壓。,場(chǎng)景創(chuàng)建完成后,以有意義的名字命名場(chǎng)景并保存。如實(shí)例命名為addstore_instantandgradual_10,保存在test_scenario目錄下。,定義場(chǎng)景設(shè)置windows資源監(jiān)控器,通過添加windows資源監(jiān)控器,可以監(jiān)控負(fù)載對(duì)服務(wù)器的cpu、內(nèi)存、磁盤等資源的影響。在監(jiān)視服務(wù)器之前要做一些工作來確保監(jiān)視連接成功。被監(jiān)視主機(jī)的訪問模式改為:經(jīng)典-本地用戶以自己的身份驗(yàn)證;且必須設(shè)置密碼。被監(jiān)視系統(tǒng)開啟以下三個(gè)服務(wù):remoteprocedurecall(rpc)和remoteprocedurecall(rpc)、remoteregistry。確認(rèn)安裝controller的機(jī)器可以連接到被監(jiān)視的機(jī)器。確認(rèn)并打開共享文件c$。上述工作的詳細(xì)方法不再過多描述,如有疑問和其他問題,可參閱相關(guān)資料。接下來在controller中添加被監(jiān)控的計(jì)算機(jī)資源。添加windows資源監(jiān)控器的步驟如下:1.點(diǎn)擊controller界面下方的run選項(xiàng)卡,打開run視圖。2.選擇菜單monitor

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論