當前位置:編程學習大全網 - 網絡軟體 - LoadRunner學習知多少

LoadRunner學習知多少

壹. 什麽是LoadRunner

LoadRunner是壹種預測系統行為和性能的工業標準級負載測試工具。通過以模擬多個用戶實施並發負載測試及實時性能檢測的方式來確認和查找問題,能對整個企業架構進行測試。

二. LoadRunner的優點

1. 輕松創建虛擬用戶:通過記錄下業務流程轉為測試腳本,在機器上產生多個用戶訪問,減少負載測試需要的硬件和人力資源。

2. 創建真實的負載:可以通過Controller設定負載方案,如定義用戶在什麽時候訪問系統以產生負載,所有用戶同時執行壹個動作來模擬峰值負載情況等。

3. 實時監測器:可以實時顯示交易性能數據(如響應時間)和其他系統組件如數據庫,網絡等的實時性能。

4. 分析結果以精確定位問題所在:LoadRunner能收集匯總所有測試數據,提供高級的分析和報告工具。

三. LoadRunner的安裝與使用

1.安裝過程詳見上傳的LoadRunner使用手冊,在此不再詳細介紹。

2.具體使用:

點擊File新建錄制文件,也可以點擊下面的NEW快捷鍵進行新建。使用File新建,會彈出協議選擇窗口,選擇新的單協議腳本(New SingleProtocol Script)的Web(HTTP/HTML)項,確定即可(選擇Web項是因為我們測試的是Web應用)。接著會彈出開始錄制的設置項,需要寫入錄入系統的地址,點擊確定後就會根據錄入地址展現系統頁面,開始錄制腳本,出現小工具條:

第壹個按鈕為錄制鍵

第二個為回放腳本鍵

第三個為停止錄制鍵

第四個為暫停錄制鍵

第五個為編譯腳本鍵

第六個為創建新的Action鍵。LR的錄制腳本分為三個部分,vuser_init、vuser_end和 Action。腳本循環執行時,只執行壹次vuser_init和vuser_end,而多次循環Action部分。比如錄制投保業務時,登陸系統部分放入vuser_init,退出登陸放到vuser_end,中間的投保操作放到Action中,則循環執行時就會登陸壹次投保系統開始反復執行投保操作直到結束退出系統。

第七個為用來改變錄制的options設置按鈕

第八個和第九個為插入事務的起始點和結束點鍵,結合起來構成壹個完整事物,用來衡量服務器的性能。比如錄制腳本過程中,投保系統的查詢投保單號操作,可以在輸入完查詢信息後點擊查詢按鈕前插入事務的起始點,查詢出數據後插入事務的結束點,這樣在運行測試腳本時,Loadrunner在運行到該事務時,便會計算出這個查詢操作所花時間,便於衡量服務器執行查詢操作的性能。

第十個為插入集合點鍵,可用於衡量在加重負載的情況下服務器的性能。比如要驗證系統是否能承受100人同時進行報案操作,便可在腳本錄入過程中,點擊報案確認鍵操作前插入集合點,這樣當腳本運行到集合點時,Loadrunner會讓100個虛擬用戶同時點擊報案確認按鈕(如果有的用戶還沒運行到集合點,先到用戶要等未到用戶壹起操作)進行報案,從而達到測試目的。

最後壹個為設置驗證點鍵,在創建事物後,設置壹個驗證點可以用來確認事物執行是否成功。比如進行查詢事務操作時,LR只要檢測到網頁的響應,就認為事務pass,而不管顯示頁面內容是否正確。因此為了檢查Web服務器返回的網頁是否正確,可以插入Text/Image檢查點,驗證網頁上是否存在指定的Text或Image。

設置驗證點時,如果我們驗證的文本內容是中文,有時會返回無法找到驗證內容的報錯信息,而頁面顯示又是正確的,出現問題的原因可能是因為LR對中文的支持部好,盡量選擇驗證信息為數字或字母;也可能是設置問題,可以嘗試將Tools->Recording Options->HTTP Properties下的Advanced選項裏設置支持UTF-8,再檢查開發人員有沒有設置支持中文。

錄制結束後,先點擊保存腳本,同時為腳本命名。然後編譯腳本,看是否存在語法錯誤,編譯成功後,即可回放,看錄制腳本是否成功。

LoadRunner錄制得到的腳本基本沒有錯誤,不像robot會有錄入數據的缺失,只是會錄入壹些非錄入系統的網頁信息,根據地址可以識別並刪除掉。

四. LoadRunner腳本錄制學習小結

1. LoadRunner錄制腳本,主要是為了進行壓力測試,所以跑流程時,跑了主要流程即可,也就是系統必須的信息錄入就可以了。

2. LoadRunner的腳本運行過程中,只能用於壹次業務辦理的數據需要做參數化,如車輛車架號,車牌,報案號等,以免出現重復投保或報案無法立案現象,不能繼續進行下去。參數化步驟:

1) 將需要做參數化的數據右鍵點擊,選擇Replace with a parameter,進行設置。

2) 在彈出編輯框裏,設置易懂的參數名稱,再點擊Properties進行屬性設置。

3) 點擊Create Table 按鈕,生成參數表格,再點擊Edit with Notepad按鈕,即可在記事本裏添加新的參數,添加完後再次回車(不回車可能最後條數據讀取不到)關閉,參數化操作完成。

4) 使用Ctrl +H鍵可以找到替換同樣的需要參數化的數據。

3. 腳本跑流程過程中,因為業務運轉,前面生成的投保單要接著進行提交核保業務,而每次生成的投保單號不壹樣,用於進行提交核保的單號也要與之前的保持壹致,因此需要做關聯處理,讀取到生成的新投保單號給提交核保流程。關聯步驟:

1) .查找關聯數據第壹次出現的位置,判斷該數據是由什麽函數返回的。

2) .在樹形結構裏點擊返回該數據值的函數,看它的Server Response信息,用復制的關聯數據進行查找它的返回語句,找到區分度明顯的語句(不壹定要是第壹個返回語句),然後使用web_reg_save_param函數進行關聯。

註:關聯函數壹定要寫在第壹個返回該數據值的函數前。

3) .web_reg_save_param (const char *ParamName, <List ofAttributes>, LAST);

函數的第壹個參數是用來對關聯數據進行定義的,取名最好可讀性強;第二個參數是用來標識關聯數據在返回語句裏的具體位置的,寫出該數據的左右邊界,程序才能識別;LAST表示屬性列的結束。比如辦理理賠業務的流程號,在服務器的返回語句裏是:

<input name=flowID type="hidden" value=L05012009110000035215>

做關聯為:

web_reg_save_param("LogFlowID",

"LB=name=flowIDtype=\"hidden\" value=",

"RB=>",

LAST);

定義的參數名就叫LogFlowID,表示流程號,易於明白;左邊界從name取就可以標識了,也可取長點或短點,只要能區分;右邊界只有>,寫上就好;最後寫上LAST。

在定義的左右邊界中,如果有雙引號,在腳本中是需要轉義的,因為雙引號在C中是有意義的,這裏只要表示語句信息,加上右斜杠。尖括號直寫。

左右邊界也需要用雙引號括起來。定義好的參數寫在程序中,需要在加上單尖括號:swfLogFlowID={LogFlowID}

五. 腳本執行過程中的報錯處理

1. vuser_init.c(3051):Error -26377: No match found for the requested parameter"proposalNo". Check whether the requested boundaries exist in theresponse data. Also, if the data you want to save exceeds 256 bytes, useweb_set_max_html_param_len to increase the parameter size [MsgId: MERR-26377]

2. vuser_init.c(3051):web_submit_data("UIPrPoEnInputNext.jsp") highest severity level was"ERROR", 4312 body bytes, 258 header bytes [MsgId: MMSG-26388]

兩個錯誤壹起出現,出錯語句都是在關聯函數下的提交數據函數位置,但是具體出錯有可能是:

1). 關聯函數左右邊界沒寫對,所有信息都要用字符輸入,不能是中文或其他。

2). 在關聯函數確認寫對的情況下,看提交數據函數中的業務設置,比如有可能是因為保單查詢語句,設置的查詢時間是過去的時間,新生成的投保單當然查不到,這樣程序也會報這樣的錯。

3. loadrunner 執行理賠的立案處理,錄制好腳本後,回放,報錯:

腳本日誌信息提示:

1.Action.c(400):Error -26366: "Text=立案信息提交成功" not found for web_reg_find [MsgId: MERR-26366]

2.Action.c(400):web_submit_data("claimSave.do") highest severity level was"ERROR", 4424 body bytes, 258 header bytes [MsgId: MMSG-26388]

腳本執行過程停止在立案信息提交頁面,錯誤原因:數據問題,可能是有的應該變化的信息沒有變。

在該流程中,壹個報案號只能做壹次立案,而初始腳本沒有設置參數、關聯,使用保單號進行查詢,錯誤被掩蓋。在立案系統中,壹個保單號可以重復報案,但是壹個報案號只能壹次立案,要跑通流程,需要先將這壹保單再重復報案,得到新的報案號。

六. 性能測試的場景設置

腳本錄制完畢後,接著準備測試場景。

1.首先準備測試數據。比如車險投保,需要投保人和車架號信息來唯壹標識壹輛被保車,因此就需要將投保人和車架號做參數化處理,編輯文本框錄入大量數據讓腳本唯壹讀取:

1). 錄入投保人參數,車架號參數,過程同腳本錄制的參數化處理

2). 因為投保人和車架號壹起生成壹條投保數據,可設置車架號隨投保人參數壹起讀取,設置步驟為:

投保人文件存放路徑--File path

投保人參數數據讀取方式

腳本按列名讀取參數,每行數據讀取壹次,每次循環取壹次新值。

接著設置車架號參數信息:

車架號參數讀取文件路徑設為和投保人文件路徑壹樣

腳本按列名讀取參數,行號選擇和讀取的投保人數據同壹行

這樣得到所需的投保單生成參數數據

2.設置測試場景

點擊Tools->Create Controller Scenarios,彈出場景類型選擇框:

錄入需要的虛擬用戶數,選擇生成結果存放路徑和組名。確定後進入具體設置頁面:

Quantity表示虛擬用戶個數,group name為組名。

1). 設置運行時間選項Run – time Settings

選擇循環次數Run Logic->Iteration Count,設置循環10次,虛擬用戶數為之前設置的5人,則預計壹***可生成50張投保單。

設置思考時間,思考時間通常是錄制腳本過程中,填寫頁面信息花費的時間,選擇忽略項,節省跑腳本的時間。

設置網絡連接時間,點擊網絡協議項Internet Protocol 的Options鍵,將彈出頁面裏的HTTP-request connect timeout和 HTTP-request receive timeout的數值改為1000。使得能在網絡狀況不太好的情況下向服務器發送接收數據。

2). 設置EditSchedule

選擇虛擬用戶加載方式:

可以壹次加載所有用戶,也可以按需要設置,壹秒加載壹個用戶或其他。

選擇結束方式:

當選擇壹秒加載壹個用戶時,結束設置為直到跑完所有腳本停止執行。如果選擇選擇壹次加載所有用戶可以選擇運行多少時間後停止和不停止選項。

這些設置完成後,壹次測試場景布置完成。可以進行基線檢查或單點並發測試。

七. 性能測試步驟

壹). 除測試工具外性能測試必備的系統及業務知識

1、熟悉保險行業業務特點,有助於與開發和客戶討論需求,制定測試用例;

2、熟悉系統的實現特點,開發實現方式,有助於選擇程序處理復雜、消耗系統資源的用例點;

3、熟悉數據結構,了解數據存儲規則,對腳本調試、數據準備、測試執行和監視都有幫助;

4、熟悉系統所使用的數據庫、操作系統、中間件的監視和性能問題查看,有助於測試監視和發現問題;

5、熟悉系統架構及系統集成方式,有助於分析及明確定位性能問題。

二) 性能測試執行過程

1. 基線檢查

1).目的:驗證環境是否可用;

驗證腳本是否能在場景正常執行。

2).方法:1個人單獨循環5次--沒有其他人幹擾,幹凈的環境

3).結果:壹般壹個事物的響應時間超過3秒就可能存在問題,要提報開發人

2. 單點並發

1).目的:為了快速的發現問題,如多進程的鎖機制,看是否相互間有影響。

2).方法:壹般是10人或20人執行10到15分鐘,執行過程忽略思考時間。

忽略思考時間可以減少客戶端時間,加快向服務器傳送數據速度,很大程度上增大了服務器的壓力,20個人單點並發的壓力就相當於200人正常執行帶給服務器的壓力。

3).單點測試的數據可以用來進行混發測試,但是有可能單點測試的數據不足以進行混發,需要自己再準備足夠的數據。

3.方案測試--混發測試

1).目的:模擬生產環境

2).方法:執行1小時左右,加上思考時間

八.資源監控及調優

性能測試執行過程中,需要監控系統各項資源,看是否能滿足用戶實際需要,如內存使用,SQL SERVER等,結合LR生成的分析報告,分析系統哪裏可能存在問題,需要改進,進行調優,這也是我之後要接著進行學習的地方。

1. 學習使用weblogic,了解weblogic常配參數的意義。通過weblogic自身的監控臺,可以了解到目前的JVM的大小、數據庫連接池的使用情況以及目前連接的客戶端數量以及請求狀況等等。

2. 學習oracle使用,熟悉它的體系結構,尤其是oracle10裏 的awr,awr能采集與統計數據,並從那些統計數據中導出性能量度,以跟蹤潛在的問題。

3. 需要繼續學習LR的理論知識和實際操作,參考書籍《Web性能測試實戰》、《軟件性能測試過程詳解與案例剖析》

  • 上一篇:航空γ能譜測量的原理
  • 下一篇:陰陽師海坊主哪裏多
  • copyright 2024編程學習大全網