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ù)免費閱讀

下載本文檔

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

文檔簡介

1、LoadRunner培訓(xùn)培訓(xùn)負(fù)載負(fù)載(Stress)測試工具使用基礎(chǔ)培訓(xùn)測試工具使用基礎(chǔ)培訓(xùn)1. LoadRunner基本介紹題目題目題目題目2. 用LoadRunner測試的步驟3. 工具使用之一: 錄制腳本4. 工具使用之二: 修改腳本5. 工具使用之三: 創(chuàng)建場景6. 工具使用之四: 運行測試7. 工具使用之五: 分析結(jié)果8. LoadRunner目前的使用情況LoadRunner基本介紹1.1 LoadRunner基本介紹1.2 LoadRunner運行的典型場景1.3 常用語1.1 LoadRunner基本介紹1. Mercury Interactive公司的壓力測試工具LoadRu

2、nner,是目前軟件負(fù)載測試的工業(yè)標(biāo)準(zhǔn)2.LoadRunner是通過模擬多個用戶并發(fā)負(fù)載,并進行實時監(jiān)控的方式來進行測試 3.支持多種協(xié)議,包括HTTP、 WAP 、winsock、Tuxedo、Oracle4.與其它負(fù)載測試工具的不同在于,LoadRunner的每一個虛擬用戶所占用的系統(tǒng)資源較少,適合于用較少的負(fù)載測試機器來達到大規(guī)模的負(fù)載測試所要求的并發(fā)壓力5. LoadRunner適用于網(wǎng)絡(luò)應(yīng)用的負(fù)載測試1.2 LoadRunner運行的典型場景1.3 常用語1.ControlerControler: 負(fù)責(zé)場景的控制,腳本的分發(fā),運行時數(shù)據(jù)的收集,測試結(jié)果的收集2. GeneratorG

3、enerator: 性能測試中實際壓力的發(fā)起者,主要是將Controler傳送過來的腳本,按場景所要求的運行屬性進行收發(fā)包的動作;另外,也負(fù)責(zé)運行時數(shù)據(jù)的采集 3. MonitorMonitor: 負(fù)責(zé)收集運行時各主機,數(shù)據(jù)庫待測系統(tǒng)的數(shù)據(jù),并形成實時的曲線,用于性能測試運行時的實時分析;Monitor總是在Controler所在的機器上4. AnalysisAnalysis: 主要將收集到的最終的性能測試結(jié)果進行統(tǒng)計分析,并形成圖表,便于分析系統(tǒng)的總體的性能結(jié)果 5. Vuser: Vuser: 是包含有各種運行時屬性(循環(huán)次數(shù),打印級別等)的腳本6. Scenario: 6. Scenar

4、io: 將各腳本按組的方式組織,按指定的運行時環(huán)境進行控制,分發(fā),并監(jiān)控運行情況7. Transaction: 7. Transaction: 腳本中的一部分,用于場景運行時(運行后),分析該段腳本的各響應(yīng)時間指標(biāo)(如平均響應(yīng)時間、90%響應(yīng)時間),這是分析用戶行為的重要數(shù)據(jù)注:Controler和Generator只是邏輯上的區(qū)分,即它們可以在同一臺物理機器上2. 用LoadRunner測試的步驟2.1 用LoadRunner測試的步驟2.2 最重要的是擬定計劃2.1 用LoadRunner測試的步驟2.2 最重要的是擬定計劃1.分析應(yīng)用:進行負(fù)載測試前需要了解系統(tǒng)的結(jié)構(gòu);了解現(xiàn)網(wǎng)的實際部署

5、要求;了解用戶的使用方式及行為;了解配置的不同對系統(tǒng)的影響2.定義測試目標(biāo):例如在較大壓力下用戶可以接受的最大響應(yīng)延時是多少;系統(tǒng)要求的在多大的壓力下不會出錯;在多大的壓力下出錯率為多少是可以接受的;在多大的壓力下系統(tǒng)不會崩潰;測試目的是找到系統(tǒng)的最大處理能力,還是找出系統(tǒng)中有瓶頸的地方3.設(shè)計測試所需環(huán)境的配置:以上兩點結(jié)束后,才能給出負(fù)載測試的機器配置要求、并發(fā)數(shù)要求、網(wǎng)絡(luò)配置要求、以及設(shè)計每一個場景,并給出場景成功或者失敗的指標(biāo),以及場景重復(fù)運行的環(huán)境準(zhǔn)備要求3. 工具使用之一:錄制腳本3.1 選擇腳本類型3.2 腳本的例子3.3 錄制腳本3.4 回放腳本確認(rèn)腳本的有效性3.1 選擇腳本

6、類型1.當(dāng)做好測試計劃后,就知道需要使用何種類型的腳本了,目前LoadRunner可以支持的腳本類型,可以從Virtual User Generator的新建菜單中選擇,如下圖:2.實際的腳本會根據(jù)所選擇的不同類型,而自動include不同的頭文件3.2 腳本的例子1.左上圖為Web(HTTP/HTML)類型的腳本,其它類型的腳本也基本相同2.可以看出,腳本是類似C的語言3.腳本分為Vuser_init、Action、Vuser_end三部分4.值得注意的是,每一個虛擬用戶在腳本的執(zhí)行過程中,只會運行一次Vuser_init,再運行多次循環(huán)的Action部分,最后運行一次Vuser_end,這

7、可以從腳本的Run Time Setting中看到,如左下圖3.3 錄制腳本1.LoadRunner的腳本,一般采用錄制的過程獲取初始腳本,點擊工具欄的可以開始錄制2.在彈出的Start Recoding對話框中可以進行更多選項的修改,例如加入瀏覽器的起始URL,還可以選擇錄制的腳本是放在init,Action,end三部分中的哪一部分,一般都選擇放在Action部分,點擊Options按鈕,進入高級選項(里面的設(shè)置的變化,LoadRunner會自動記憶),里面有許多可設(shè)置部分,這里提到一點:Recoding LevelHTML-Based Script是以HTML的方式來理解錄制時的行為,記

8、錄的腳本與操作一致,但對于Session類操作或者一些列表類的點擊與期望有出入,例如錄制的腳本多為web_url()等函數(shù)URL-Based Script是以HTTP的方式來理解錄制時的行為,記錄的腳本與操作有一定差異,基本上將一個操作分解為多個HTTP請求,可以處理Session類操作或者一些列表類的點擊,例如錄制的腳本多為web_custom_request()等函數(shù)建議一般建議一般WebWeb類腳本采用類腳本采用HTML-Based ScriptHTML-Based Script方式,方式,如果有問題,再采用如果有問題,再采用URL-Based ScriptURL-Based Scrip

9、t方式方式3.3 錄制腳本(續(xù))3.錄制時的每一個HTTP請求,都會被按操作順序記錄在腳本里,形成一個或多個LoadRunner的函數(shù),也可以手工寫這些函數(shù),具體的函數(shù)的使用,參見幫助 4.錄制時就應(yīng)該設(shè)置Transaction的動作,(當(dāng)然,也可以錄制完成后再進行設(shè)置),方法在是某個需要設(shè)置Transaction的動作前設(shè)置事務(wù)的起始點,如下圖在該動作后設(shè)置事務(wù)的結(jié)束點,例如錄制一個登錄郵箱的動作,在首頁點了幾個鏈接后,登錄前填好用戶名和密碼,在點擊“登錄”按鈕之前設(shè)置事務(wù)起始點“Login”,在點擊登錄后,郵箱完全顯示后,再設(shè)置事務(wù)結(jié)束點“Login”,這樣一個Login的事務(wù)就設(shè)置完成了

10、,生成的腳本如右圖:5.一個腳本中可以有多個事務(wù),事務(wù)可以嵌套6.錄制完成后,點擊stop按鈕,即上圖中左數(shù)第3個按鈕,可以結(jié)束腳本的錄制,接著可以存盤3.4 回放腳本確認(rèn)腳本有效性當(dāng)腳本錄制完成,并存盤后,應(yīng)立即回放腳本,以檢查是否通過回放腳本的動作是Run一次腳本,或者點擊F5回放完成后,會有界面彈出,指明該腳本是否執(zhí)行成功,如下圖如回放通過,則腳本錄制就算基本完成4. 工具使用之二:修改腳本4.1 參數(shù)化4.2 加入打印信息4.3 同步點的概念4.4 備注4.1 參數(shù)化1.大部分的腳本都需要參數(shù)化,例如,一個登錄腳本只記錄了以一個用戶名/密碼對登錄某個系統(tǒng),但要達到以不同的用戶名/密碼對

11、登錄,則需要用到參數(shù)化2.參數(shù)化就是將腳本中的某個字符串替換為一個參數(shù)列表的動作3.參數(shù)化的方法很簡單,在腳本中將某個字符串選中,點右鍵,選擇Replace With a Parameter,出現(xiàn)右上圖:4.確定后,腳本中原有字符串被替換成參數(shù)名5.參數(shù)化時,參數(shù)類型可以采用多種方式,如File、Date/Time、Random Num,以下以File方式來講解6.文件方式的參數(shù)化是較為常見的一種參數(shù)化方式,參數(shù)文件以ASCII碼文件顯示,一般需要手工修改該文件的內(nèi)容7.參數(shù)屬性窗口(右下圖)中有幾個需要注意的地方:A SequentialB Unique4.1 參數(shù)化(續(xù))考慮做一個10 X

12、 50的負(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è)置屬于腳本的屬性,一直跟隨腳本實際運行時,每個虛擬用戶的執(zhí)行不會按給它的參數(shù)的順序來執(zhí)行,即單個虛擬用戶運行時的所采用的參數(shù)是無序的當(dāng)參數(shù)文件不夠用時,在

13、場景里初始化時,會報錯4.2 加入打印信息1.在負(fù)載測試正在進行中,如果出現(xiàn)問題,很難找到問題在哪里,例如web腳本運行時,LoadRunner的Controler通常以返回的HTTP頭信息中的狀態(tài)標(biāo)識來決定成功與否,例如,狀態(tài)200為通過;現(xiàn)有的應(yīng)用已經(jīng)很智能化,如果未找到頁面,也會重定向一個友好的出錯提示頁面,這樣返回200,LoadRunner卻不知道應(yīng)用已報錯2.一般而言對于上述情況,可以采用以下方法處理:LoadRunner先進行條件判斷,如果不滿足條件,則在運行時以及報告里打印信息,來報錯,典型的例子為登錄時用戶不存在,可以采用以下方法:A)檢查登錄后的返回頁面中有無特征字符串或特

14、征圖片B)如未找到匹配值,則打印一條信息3.常用的打印函數(shù)有幾個,如lr_errro_message(),lr_output_message()等等4.打印信息也常用于跟蹤每個虛擬用戶的事務(wù)狀態(tài),例如在腳本的多處加入打印信息,一旦出錯,能夠知道錯誤具體是在虛擬用戶做哪一個操作時出的錯4.3 同步點的概念1.首先提到的應(yīng)該是LoadRunner在執(zhí)行負(fù)載測試時各虛擬用戶的運行情況,每個虛擬用戶都會不間斷地按照Action里的語句來執(zhí)行,此時會有一個問題,即很難保證每個虛擬用戶都是同時發(fā)起請求的,可能一個用戶在發(fā)起請求時,其它的一些用戶都在等待上一個請求的回應(yīng),這樣如果10 X 50的負(fù)載測試時,

15、實際對服務(wù)器的壓力沒有10個并發(fā),當(dāng)事務(wù)響應(yīng)時間越長,則實際的并發(fā)量則越小2.同步點的目的就是讓所有的虛擬用戶在同一時刻發(fā)起下面的請求,它能保證后面緊接的一個請求是所有虛擬用戶同時發(fā)起的3.當(dāng)設(shè)置同步點后,先運行完的虛擬用戶會在同步點處等待,直到所有的虛擬用戶都到達該點后,再同時發(fā)起請求4.設(shè)置同步點可以直接在腳本中寫lr_rendezvous()函數(shù);rendezvousrendezvousAction Of Script4.4 備注1.Session的控制Session用得越來越多了,這樣會導(dǎo)致原來錄制的腳本,在以后回放時,由于Session串已不存在,則會報錯,因為Session是自動生

16、成的,每次都不一樣解決方法是在產(chǎn)生Session之前的腳本前面加入以下函數(shù):web_reg_save_param(“ParaName”,”LB=XXX”,”RB=“YYY”,LAST);原腳本中以后的請求中的Session串用該函數(shù)中的參數(shù)名代替該函數(shù)的實際處理動作是從接下來的HTTP請求的返回包體中找到一個滿足左邊界為字符串XXX,右邊界為字符串YYY的地方,并將兩個字符串中間的部分保存為Session的值,以便以后使用,即XXXnnnnnnnnnYYY如果出現(xiàn)在下面的返回包體中,則nnnnnnnnn這個串的值將會作為未來的Session串來使用5. 工具使用之三:創(chuàng)建場景5.1 場景的創(chuàng)建

17、5.2 場景的屬性修改5.3 場景的保存5.1 場景的創(chuàng)建1.場景的創(chuàng)建可以從Controler里新建一個,也可以從Virtual User Generator中直接生成,以下講從Controler里新建場景2.創(chuàng)建場景的始初框中有兩種選則,一為手工創(chuàng)建場景,另一個為基于目標(biāo)的場景,后者主要是給定一些條件,讓LoadRunner自己去控制運行時的Vsser的多少,例如讓Vusr數(shù)從50個到100個變動,直到點擊率達到30后,再運行30分鐘后退出3.手工創(chuàng)建場景是較常見的,選擇已有的Script,加入到場景后,會形成右下圖,可以看出,每個Script是以Group的方式存在于場景中的,新建時每個

18、Group并發(fā)數(shù)為104.可以讓每個Group采用不同數(shù)目的Vuser,在不同的Generator上運行,這樣可以進行分布式的負(fù)載測試,只要有足夠多的Generator機器和License,就可以進行超強的并發(fā)壓力5.2 場景的屬性修改1.LoadRunner的腳本是有一些屬性的,例如,循環(huán)次數(shù),是否有thinktime等等,有些屬性跟隨腳本帶入場景(例如thinktime),有些屬性在場景中還需要重新設(shè)置(例如循環(huán)次數(shù))2.所以創(chuàng)建場景后,還應(yīng)對每個Script的屬性分別進行檢查,看是否滿足場景設(shè)計的要求3.關(guān)于Schedual,可以進一步定義場景的運行時屬性,例如定義該場景以10個并發(fā)開始

19、,每2分鐘增加5個并發(fā),直到全部并發(fā)上去后,再運行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é)果的位置;另外,它還

20、可以保存Monitor相關(guān)的測試配置,這樣可以大大減少下次重復(fù)測試需要的準(zhǔn)備時間2.經(jīng)驗表明,最好把場景,腳本,結(jié)果,數(shù)據(jù)文件保存在一個目錄下,再分子目錄歸類,而數(shù)據(jù)文件在Script中采用相對路徑,這樣可以保證這些東西拷到其它機器或其它目錄下仍能使用,常用的目錄結(jié)構(gòu)如下:6. 工具使用之四:運行測試6.1 運行測試完成的事項6.2 運行時監(jiān)控待測系統(tǒng)6.3 運行后注意事項6.1 運行測試完成的事項1.當(dāng)點擊Controler里的 按鈕時,可以選擇Result放置的目錄位置,選擇并確定后,開始運行測試,運行測試實際完成的動作有:A)編譯各腳本(Pending)B)Controler連接各Gen

21、erator(Init)C)Controler將編譯后的各腳本以及對應(yīng)的數(shù)據(jù)按場景要求,通過FTP方式分發(fā)到各Generator機器(Ready)D)各Generator發(fā)起請求(對應(yīng)Run) 6.2 運行時監(jiān)控待測系統(tǒng)1.Run的時候,可以監(jiān)控一些數(shù)據(jù),分為兩類:基本性能數(shù)據(jù)、服務(wù)器性能數(shù)據(jù)2.基本性能數(shù)據(jù)是從Generator采集的數(shù)據(jù),Controler定時從各個Generator上FTP獲取,并圖形化顯示出來,這類數(shù)據(jù)包括Run Vuser,Transactions Response Time,Hit Per Sencond,Throughput3.服務(wù)器性能數(shù)據(jù)(需要在場景運行前就進

22、行設(shè)置)是從待測系統(tǒng)的各個服務(wù)器采集的數(shù)據(jù),這樣數(shù)據(jù)的采集點就在待測系統(tǒng)主機上,部分服務(wù)器性能數(shù)據(jù)可以直接從服務(wù)器獲取(那些服務(wù)器已提供這些數(shù)據(jù)采集的接口),另外一些需要在服務(wù)器上啟動相應(yīng)的Agent或采集進程,具體參考手冊描述。(盛曉婷曾專門寫過一份Monitor的PPT,請參考)4.運行時的監(jiān)控數(shù)據(jù)會隨著場景不斷運行,曲線也會不斷變動,按目前的經(jīng)驗,這些曲線的變動十分精確地反映了系統(tǒng)的運行情況,建議大家不斷參考各手冊,并多一些實踐來綜合分析Monitor曲線的變動的意義。5.服務(wù)器性能數(shù)據(jù)(如Oracle,Tuxedo,Unix,Weblogic)與具體的應(yīng)用平臺相關(guān),且能幫助分析系統(tǒng)瓶頸,十分重要;一般而言,需要各部分的專家協(xié)同進行運行時性能分析,包括了SA,開發(fā)人員,DBA。建議在測試計劃中明確需要進行的服務(wù)器性能采集的種類和需要參與分析的專家列表。6.3 運行后的注意事項1.當(dāng)分布在各G

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論