MI測試工具LoadRunner基礎(chǔ)培訓(xùn)_第1頁
MI測試工具LoadRunner基礎(chǔ)培訓(xùn)_第2頁
MI測試工具LoadRunner基礎(chǔ)培訓(xùn)_第3頁
MI測試工具LoadRunner基礎(chǔ)培訓(xùn)_第4頁
MI測試工具LoadRunner基礎(chǔ)培訓(xùn)_第5頁
已閱讀5頁,還剩30頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

LoadRunner培訓(xùn)

—負(fù)載(Stress)測試工具使用根底培訓(xùn)編輯課件1.LoadRunner根本介紹題目題目2.用LoadRunner測試的步驟3.工具使用之一:錄制腳本4.工具使用之二:修改腳本5.工具使用之三:創(chuàng)立場景6.工具使用之四:運(yùn)行測試7.工具使用之五:分析結(jié)果8.LoadRunner目前的使用情況編輯課件LoadRunner根本介紹1.1LoadRunner根本介紹1.2LoadRunner運(yùn)行的典型場景1.3常用語編輯課件1.1LoadRunner根本介紹1.MercuryInteractive公司的壓力測試工具LoadRunner,是目前軟件負(fù)載測試的工業(yè)標(biāo)準(zhǔn)2.LoadRunner是通過模擬多個用戶并發(fā)負(fù)載,并進(jìn)行實(shí)時監(jiān)控的方式來進(jìn)行測試3.支持多種協(xié)議,包括HTTP、WAP、winsock、Tuxedo、Oracle……4.與其它負(fù)載測試工具的不同在于,LoadRunner的每一個虛擬用戶所占用的系統(tǒng)資源較少,適合于用較少的負(fù)載測試機(jī)器來到達(dá)大規(guī)模的負(fù)載測試所要求的并發(fā)壓力5.LoadRunner適用于網(wǎng)絡(luò)應(yīng)用的負(fù)載測試編輯課件1.2LoadRunner運(yùn)行的典型場景編輯課件1.3常用語1.Controler:負(fù)責(zé)場景的控制,腳本的分發(fā),運(yùn)行時數(shù)據(jù)的收集,測試結(jié)果的收集2.Generator:性能測試中實(shí)際壓力的發(fā)起者,主要是將Controler傳送過來的腳本,按場景所要求的運(yùn)行屬性進(jìn)行收發(fā)包的動作;另外,也負(fù)責(zé)運(yùn)行時數(shù)據(jù)的采集3.Monitor:負(fù)責(zé)收集運(yùn)行時各主機(jī),數(shù)據(jù)庫……待測系統(tǒng)的數(shù)據(jù),并形成實(shí)時的曲線,用于性能測試運(yùn)行時的實(shí)時分析;Monitor總是在Controler所在的機(jī)器上4.Analysis:主要將收集到的最終的性能測試結(jié)果進(jìn)行統(tǒng)計分析,并形成圖表,便于分析系統(tǒng)的總體的性能結(jié)果5.Vuser:是包含有各種運(yùn)行時屬性〔循環(huán)次數(shù),打印級別等〕的腳本6.Scenario:將各腳本按組的方式組織,按指定的運(yùn)行時環(huán)境進(jìn)行控制,分發(fā),并監(jiān)控運(yùn)行情況7.Transaction:腳本中的一局部,用于場景運(yùn)行時(運(yùn)行后),分析該段腳本的各響應(yīng)時間指標(biāo)(如平均響應(yīng)時間、90%響應(yīng)時間),這是分析用戶行為的重要數(shù)據(jù)注:Controler和Generator只是邏輯上的區(qū)分,即它們可以在同一臺物理機(jī)器上編輯課件2.用LoadRunner測試的步驟2.1用LoadRunner測試的步驟2.2最重要的是擬定方案編輯課件2.1用LoadRunner測試的步驟編輯課件2.2最重要的是擬定方案1.分析應(yīng)用:進(jìn)行負(fù)載測試前需要了解系統(tǒng)的結(jié)構(gòu);了解現(xiàn)網(wǎng)的實(shí)際部署要求;了解用戶的使用方式及行為;了解配置的不同對系統(tǒng)的影響2.定義測試目標(biāo):例如在較大壓力下用戶可以接受的最大響應(yīng)延時是多少;系統(tǒng)要求的在多大的壓力下不會出錯;在多大的壓力下出錯率為多少是可以接受的;在多大的壓力下系統(tǒng)不會崩潰;測試目的是找到系統(tǒng)的最大處理能力,還是找出系統(tǒng)中有瓶頸的地方3.設(shè)計測試所需環(huán)境的配置:以上兩點(diǎn)結(jié)束后,才能給出負(fù)載測試的機(jī)器配置要求、并發(fā)數(shù)要求、網(wǎng)絡(luò)配置要求、以及設(shè)計每一個場景,并給出場景成功或者失敗的指標(biāo),以及場景重復(fù)運(yùn)行的環(huán)境準(zhǔn)備要求編輯課件3.工具使用之一:錄制腳本3.1選擇腳本類型3.2腳本的例子3.3錄制腳本3.4回放腳本確認(rèn)腳本的有效性編輯課件3.1選擇腳本類型1.當(dāng)做好測試方案后,就知道需要使用何種類型的腳本了,目前LoadRunner可以支持的腳本類型,可以從VirtualUserGenerator的新建菜單中選擇,如以下圖:2.實(shí)際的腳本會根據(jù)所選擇的不同類型,而自動include不同的頭文件編輯課件3.2腳本的例子1.左上圖為Web(HTTP/HTML)類型的腳本,其它類型的腳本也根本相同2.可以看出,腳本是類似C的語言3.腳本分為Vuser_init、Action、Vuser_end三局部4.值得注意的是,每一個虛擬用戶在腳本的執(zhí)行過程中,只會運(yùn)行一次Vuser_init,再運(yùn)行屢次循環(huán)的Action局部,最后運(yùn)行一次Vuser_end,這可以從腳本的RunTimeSetting中看到,如左以下圖編輯課件3.3錄制腳本1.LoadRunner的腳本,一般采用錄制的過程獲取初始腳本,點(diǎn)擊工具欄的

可以開始錄制2.在彈出的StartRecoding對話框中可以進(jìn)行更多項選擇項的修改,例如參加瀏覽器的起始URL,還可以選擇錄制的腳本是放在init,Action,end三局部中的哪一局部,一般都選擇放在Action局部,點(diǎn)擊Options按鈕,進(jìn)入高級選項(里面的設(shè)置的變化,LoadRunner會自動記憶〕,里面有許多可設(shè)置局部,這里提到一點(diǎn):RecodingLevel

HTML-BasedScript是以HTML的方式來理解錄制時的行為,記錄的腳本與操作一致,但對于Session類操作或者一些列表類的點(diǎn)擊與期望有出入,例如錄制的腳本多為web_url()等函數(shù)URL-BasedScript是以HTTP的方式來理解錄制時的行為,記錄的腳本與操作有一定差異,根本上將一個操作分解為多個HTTP請求,可以處理Session類操作或者一些列表類的點(diǎn)擊,例如錄制的腳本多為web_custom_request()等函數(shù)

建議一般Web類腳本采用HTML-BasedScript方式,如果有問題,再采用URL-BasedScript方式

編輯課件3.3錄制腳本(續(xù))3.錄制時的每一個HTTP請求,都會被按操作順序記錄在腳本里,形成一個或多個LoadRunner的函數(shù),也可以手工寫這些函數(shù),具體的函數(shù)的使用,參見幫助4.錄制時就應(yīng)該設(shè)置Transaction的動作,(當(dāng)然,也可以錄制完成后再進(jìn)行設(shè)置),方法在是某個需要設(shè)置Transaction的動作前設(shè)置事務(wù)的起始點(diǎn),如以下圖

在該動作后設(shè)置事務(wù)的結(jié)束點(diǎn),例如錄制一個登錄郵箱的動作,在首頁點(diǎn)了幾個鏈接后,登錄前填好用戶名和密碼,在點(diǎn)擊“登錄〞按鈕之前設(shè)置事務(wù)起始點(diǎn)“Login〞,在點(diǎn)擊登錄后,郵箱完全顯示后,再設(shè)置事務(wù)結(jié)束點(diǎn)“Login〞,這樣一個Login的事務(wù)就設(shè)置完成了,生成的腳本如右圖:5.一個腳本中可以有多個事務(wù),事務(wù)可以嵌套6.錄制完成后,點(diǎn)擊stop按鈕,即上圖中左數(shù)第3個按鈕,可以結(jié)束腳本的錄制,接著可以存盤

編輯課件3.4回放腳本確認(rèn)腳本有效性當(dāng)腳本錄制完成,并存盤后,應(yīng)立即回放腳本,以檢查是否通過回放腳本的動作是Run一次腳本,或者點(diǎn)擊F5回放完成后,會有界面彈出,指明該腳本是否執(zhí)行成功,如以下圖如回放通過,那么腳本錄制就算根本完成

編輯課件4.工具使用之二:修改腳本4.1參數(shù)化4.2參加打印信息4.3同步點(diǎn)的概念4.4備注編輯課件4.1參數(shù)化1.大局部的腳本都需要參數(shù)化,例如,一個登錄腳本只記錄了以一個用戶名/密碼對登錄某個系統(tǒng),但要到達(dá)以不同的用戶名/密碼對登錄,那么需要用到參數(shù)化2.參數(shù)化就是將腳本中的某個字符串替換為一個參數(shù)列表的動作3.參數(shù)化的方法很簡單,在腳本中將某個字符串選中,點(diǎn)右鍵,選擇ReplaceWithaParameter,出現(xiàn)右上圖:4.確定后,腳本中原有字符串被替換成{參數(shù)名}5.參數(shù)化時,參數(shù)類型可以采用多種方式,如File、

Date/Time、RandomNum……,以下以File方式來講解6.文件方式的參數(shù)化是較為常見的一種參數(shù)化方式,

參數(shù)文件以ASCII碼文件顯示,一般需要手工修改該文件的內(nèi)容7.參數(shù)屬性窗口(右以下圖〕中有幾個需要注意的地方:ASequentialBUnique編輯課件4.1參數(shù)化(續(xù))考慮做一個10X50的負(fù)載測試的參數(shù)化,即10個并發(fā),每個虛擬用戶循環(huán)50次,采用文件方式參數(shù)化,那么:Sequential的方式

從參數(shù)文件中讀取前50行,分給第一個虛擬用戶;仍然取這50行,分給第二個虛擬用戶,所有的虛擬用戶都用前50行,后面的數(shù)據(jù)無效Unique的方式

從參數(shù)文件中讀取前50行,分給第一個虛擬用戶;再從參數(shù)文件中讀取接下來的50行,分給第二個虛擬用戶,所有的虛擬用戶都取不同50行,共從參數(shù)文件中獲取500條數(shù)據(jù).注:參數(shù)文件以及參數(shù)文件的設(shè)置屬于腳本的屬性,一直跟隨腳本實(shí)際運(yùn)行時,每個虛擬用戶的執(zhí)行不會按給它的參數(shù)的順序來執(zhí)行,即單個虛擬用戶運(yùn)行時的所采用的參數(shù)是無序的當(dāng)參數(shù)文件不夠用時,在場景里初始化時,會報錯編輯課件4.2參加打印信息1.在負(fù)載測試正在進(jìn)行中,如果出現(xiàn)問題,很難找到問題在哪里,例如web腳本運(yùn)行時,LoadRunner的Controler通常以返回的HTTP頭信息中的狀態(tài)標(biāo)識來決定成功與否,例如,狀態(tài)200為通過;現(xiàn)有的應(yīng)用已經(jīng)很智能化,如果未找到頁面,也會重定向一個友好的出錯提示頁面,這樣返回200,LoadRunner卻不知道應(yīng)用已報錯2.一般而言對于上述情況,可以采用以下方法處理:LoadRunner先進(jìn)行條件判斷,如果不滿足條件,那么在運(yùn)行時以及報告里打印信息,來報錯,典型的例子為登錄時用戶不存在,可以采用以下方法:A〕檢查登錄后的返回頁面中有無特征字符串或特征圖片B〕如未找到匹配值,那么打印一條信息3.常用的打印函數(shù)有幾個,如lr_errro_message(),lr_output_message()等等4.打印信息也常用于跟蹤每個虛擬用戶的事務(wù)狀態(tài),例如在腳本的多處參加打印信息,一旦出錯,能夠知道錯誤具體是在虛擬用戶做哪一個操作時出的錯編輯課件4.3同步點(diǎn)的概念1.首先提到的應(yīng)該是LoadRunner在執(zhí)行負(fù)載測試時各虛擬用戶的運(yùn)行情況,每個虛擬用戶都會不間斷地按照Action里的語句來執(zhí)行,此時會有一個問題,即很難保證每個虛擬用戶都是同時發(fā)起請求的,可能一個用戶在發(fā)起請求時,其它的一些用戶都在等待上一個請求的回應(yīng),這樣如果10X50的負(fù)載測試時,實(shí)際對效勞器的壓力沒有10個并發(fā),當(dāng)事務(wù)響應(yīng)時間越長,那么實(shí)際的并發(fā)量那么越小2.同步點(diǎn)的目的就是讓所有的虛擬用戶在同一時刻發(fā)起下面的請求,它能保證后面緊接的一個請求是所有虛擬用戶同時發(fā)起的3.當(dāng)設(shè)置同步點(diǎn)后,先運(yùn)行完的虛擬用戶會在同步點(diǎn)處等待,直到所有的虛擬用戶都到達(dá)該點(diǎn)后,再同時發(fā)起請求4.設(shè)置同步點(diǎn)可以直接在腳本中寫lr_rendezvous()函數(shù);rendezvousActionOfScript編輯課件4.4備注1.Session的控制Session用得越來越多了,這樣會導(dǎo)致原來錄制的腳本,在以后回放時,由于Session串已不存在,那么會報錯,因?yàn)镾ession是自動生成的,每次都不一樣解決方法是在產(chǎn)生Session之前的腳本前面參加以下函數(shù): web_reg_save_param(“ParaName〞,〞LB=XXX〞,〞RB=“YYY〞,LAST);原腳本中以后的請求中的Session串用該函數(shù)中的參數(shù)名代替該函數(shù)的實(shí)際處理動作是從接下來的HTTP請求的返回包體中找到一個滿足左邊界為字符串XXX,右邊界為字符串YYY的地方,并將兩個字符串中間的局部保存為Session的值,以便以后使用,即 ……XXXnnnnnnnnnYYY……如果出現(xiàn)在下面的返回包體中,那么nnnnnnnnn這個串的值將會作為未來的Session串來使用編輯課件5.工具使用之三:創(chuàng)立場景5.1場景的創(chuàng)立5.2場景的屬性修改5.3場景的保存編輯課件5.1場景的創(chuàng)立1.場景的創(chuàng)立可以從Controler里新建一個,也可以從VirtualUserGenerator中直接生成,以下講從Controler里新建場景2.創(chuàng)立場景的始初框中有兩種選那么,一為

手工創(chuàng)立場景,另一個為基于目標(biāo)的場景,

后者主要是給定一些條件,讓LoadRunner

自己去控制運(yùn)行時的Vsser的多少,例如讓Vusr

數(shù)從50個到100個變動,直到點(diǎn)擊率到達(dá)30后,

再運(yùn)行30分鐘后退出3.手工創(chuàng)立場景是較常見的,選擇已有的

Script,參加到場景后,會形成右以下圖,

可以看出,每個Script是以Group的方式存

在于場景中的,新建時每個Group并發(fā)數(shù)為104.可以讓每個Group采用不同數(shù)目的Vuser,

在不同的Generator上運(yùn)行,這樣可以進(jìn)行

分布式的負(fù)載測試,只要有足夠多的Generator

機(jī)器和License,就可以進(jìn)行超強(qiáng)的并發(fā)壓力編輯課件5.2場景的屬性修改1.LoadRunner的腳本是有一些屬性的,例如,循環(huán)次數(shù),是否有thinktime等等,

有些屬性跟隨腳本帶入場景(例如thinktime),有些屬性在場景中還需要重新設(shè)置〔例如循環(huán)次數(shù)〕2.所以創(chuàng)立場景后,還應(yīng)對每個Script的屬性分別進(jìn)行檢查,看是否滿足場景設(shè)計的要求3.關(guān)于Schedual,可以進(jìn)一步定義場景的運(yùn)行時屬性,例如定義該場景以10個并發(fā)開始,每2分鐘增加5個并發(fā),直到全部并發(fā)上去后,再運(yùn)行10分鐘后,再每30秒停止5個并發(fā)用戶,直到全部停止,這樣可以形成階梯式的并發(fā),更趨向現(xiàn)網(wǎng),而且更利于發(fā)現(xiàn)問題編輯課件5.2場景的屬性修改(續(xù))4.場景的屬性修改,可以完成控制每秒種發(fā)包數(shù)量的功能〔一般用于HTTP響應(yīng)極快時,例如DSMP接口測試〕如果每個請求中有l(wèi)r_thinktime(1),即Sleep一秒鐘,當(dāng)請求的響應(yīng)時間很小(千分之幾秒〕時,這樣我們可以將請求包/響應(yīng)包的時間忽略不計,那么N個并發(fā),就是控制了發(fā)送包的速度為N個包/秒編輯課件5.3場景的保存1.場景的保存,可以保存和該場景相關(guān)的腳本位置,場景的屬性設(shè)置,以及測試結(jié)果的位置;另外,它還可以保存Monitor相關(guān)的測試配置,這樣可以大大減少下次重復(fù)測試需要的準(zhǔn)備時間2.經(jīng)驗(yàn)說明,最好把場景,腳本,結(jié)果,數(shù)據(jù)文件保存在一個目錄下,再分子目錄歸類,而數(shù)據(jù)文件在Script中采用相對路徑,這樣可以保證這些東西拷到其它機(jī)器或其它目錄下仍能使用,常用的目錄結(jié)構(gòu)如下:

編輯課件6.工具使用之四:運(yùn)行測試6.1運(yùn)行測試完成的事項6.2運(yùn)行時監(jiān)控待測系統(tǒng)6.3運(yùn)行后本卷須知編輯課件6.1運(yùn)行測試完成的事項1.當(dāng)點(diǎn)擊Controler里的按鈕時,可以選擇Result放置的目錄位置,選擇并確定后,開始運(yùn)行測試,運(yùn)行測試實(shí)際完成的動作有:A〕編譯各腳本(Pending)B〕Controler連接各Generator(Init)C〕Controler將編譯后的各腳本以及對應(yīng)的數(shù)據(jù)按場景要求,通過FTP方式分發(fā)到各Generator機(jī)器〔Ready)D〕各Generator發(fā)起請求

〔對應(yīng)Run)編輯課件6.2運(yùn)行時監(jiān)控待測系統(tǒng)1.Run的時候,可以監(jiān)控一些數(shù)據(jù),分為兩類:根本性能數(shù)據(jù)、效勞器性能數(shù)據(jù)2.根本性能數(shù)據(jù)是從Generator采集的數(shù)據(jù),Controler定時從各個Generator上FTP獲取,并圖形化顯示出來,這類數(shù)據(jù)包括RunVuser,TransactionsResponseTime,HitPerSencond,Throughput3.效勞器性能數(shù)據(jù)(需要在場景運(yùn)行前就進(jìn)行設(shè)置〕是從待測系統(tǒng)的各個效勞器采集的數(shù)據(jù),這樣數(shù)據(jù)的采集點(diǎn)就在待測系統(tǒng)主機(jī)上,局部效勞器性能數(shù)據(jù)可以直接從效勞器獲取(那些效勞器已提供這些數(shù)據(jù)采集的接口〕,另外一些需要在效勞器上啟動相應(yīng)的Agent或采集進(jìn)程,具體參考手冊描述?!彩枣迷鴮iT寫過一份Monitor的PPT,請參考〕4.運(yùn)行時的監(jiān)控數(shù)據(jù)會隨著場景不斷運(yùn)行,曲線也會不斷變動,按目前的經(jīng)驗(yàn),這些曲線的變動十分精確地反映了系統(tǒng)的運(yùn)行情況,建議大家不斷參考各手冊,并多一些實(shí)踐來綜合分析Monitor曲線的變動的意義。5.效勞器性能數(shù)據(jù)(如Oracle,Tuxedo,Unix,Weblogic……)與具體的應(yīng)用平臺相關(guān),且能幫助分析系統(tǒng)瓶頸,十分重要;一般而言,需要各局部的專家協(xié)同進(jìn)行運(yùn)行時性能分析,包括了SA,開發(fā)人員,DBA。建議在測試方案中明確需要進(jìn)行的效勞器性能采集的種類和需要參與分析的專家列表。編輯課件6.3運(yùn)行后的本卷須知1.當(dāng)分布在各Generator機(jī)器上的Vusr均運(yùn)行完畢后,Controler顯示

溫馨提示

  • 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

提交評論