loadrunner腳本語言基礎
『壹』 誰知道loadrunner的腳本是什麼語言
LR腳本支持的語言有:java、c、Visual Basic、vbscrīpt
默認的腳本生成語言為 C。
看看這篇文章,對你有幫助
《軟體測試之LoadRunner所使用的腳本語言初解》
http://www.testing.cc/testtools/loadrunner/189.htm
『貳』 LoadRunner是什麼腳本語言
LoadRunner腳本是c語言。
C語言是一種結構化語言,它有著清晰的層次,可按照模塊的方式對程序進行編寫,十分有利於程序的調試,且c語言的處理和表現能力都非常的強大,依靠非常全面的運算符和多樣的數據類型,可以輕易完成各種數據結構的構建,通過指針類型更可對內存直接定址以及對硬體進行直接操作,因此既能夠用於開發系統程序,也可用於開發應用軟體。
(2)loadrunner腳本語言基礎擴展閱讀:
C語言包含的各種控制語句僅有9種,關鍵字也只有32 個,程序的編寫要求不嚴格且以小寫字母為主,對許多不必要的部分進行了精簡。實際上,語句構成與硬體有關聯的較少,且C語言本身不提供與硬體相關的輸入輸出、文件管理等功能,如需此類功能,需要通過配合編譯系統所支持的各類庫進行編程,故c語言擁有非常簡潔的編譯系統。
C語言是一種結構化的語言,提供的控制語句具有結構化特徵,如for語句、if⋯else語句和switch語句等。可以用於實現函數的邏輯控制,方便麵向過程的程序設計。
『叄』 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). 設置EditSchele
選擇虛擬用戶載入方式:
可以一次載入所有用戶,也可以按需要設置,一秒載入一個用戶或其他。
選擇結束方式:
當選擇一秒載入一個用戶時,結束設置為直到跑完所有腳本停止執行。如果選擇選擇一次載入所有用戶可以選擇運行多少時間後停止和不停止選項。
這些設置完成後,一次測試場景布置完成。可以進行基線檢查或單點並發測試。
七. 性能測試步驟
一). 除測試工具外性能測試必備的系統及業務知識
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性能測試實戰》、《軟體性能測試過程詳解與案例剖析》
『肆』 LoadRunner工具的LoadRunner工具測試四個基本步驟
步驟 1 — 創建腳本:捕獲在您的應用程序中執行的典型最終用戶業務流程。
步驟 2 — 設計場景:通過定義測試會話期間發生的事件,設置負載測試環境。
步驟 3 — 運行場景:運行、管理並監控負載測試。
步驟 4 — 分析結果:分析負載測試期間 LoadRunner工具生成的性能數據。
LoadRunner工具組件測試過程的每個步驟均由一個Mercury LoadRunner工具組件執行。這些組件如下:
Mercury 虛擬用戶生成器 (VuGen) — 創建腳本VuGen 通過錄制應用程序中典型最終用戶執行的操作來生成虛擬用戶 (Vuser)。VuGen 將這些操作錄制到自動虛擬用戶腳本中,以便作為負載測試的基礎。
Mercury LoadRunnerController — 設計和運行場景Controller 是用來創建、管理和監控負載測試的中央控制台。使用 Controller 可以運行用來模擬真實用戶執行的操作的腳本,並可以通過讓多個 Vuser (虛擬用戶)同時執行這些操作來在系統中創建負載。
Mercury Analysis — 分析場景Mercury Analysis 提供包含深入的性能分析信息的圖和報告。使用這些圖和報告,可以標識和確定應用程序中的瓶頸,並確定需要對系統進行哪些更改來提高系統性能。
『伍』 LoadRunner腳本是什麼語言
LR腳本支持的語言有:中逗判java、c、Visual Basic、vbscrīpt
默認指穗的腳本生成語言為 C。
Tools---Recording Options 菜單選項賣改,選擇General--scrīpt選項,就可以看見可選的語言
『陸』 LoadRunner腳本是什麼語言
LoadRunner腳本是C語言。
C語言是一門面向過程的計算機編程語言,與C++、Java等面向對象編程語言有所不同。C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、僅產生少量的機器碼以及不需要任何運行環境支持便能運行的編程語言。
C語言描述問題比匯編語言迅速,工作量小、可讀性好,易於調試、修改和移植,而代碼質量與匯編語言相當。C語言一般只比匯編語言代碼生成的目標程序效率低10%~20%。
(6)loadrunner腳本語言基礎擴展閱讀:
C語言的特有特點:
1、C語言是一個有結構化程序設計、具有變數作用域(variable scope)以及遞歸功能的過程式語言。
2、C語言傳遞參數均是以值傳遞(pass by value),另外也可以傳遞指針(a pointer passed by value)。
3、不同的變數類型可以用結構體(struct)組合在一起。
4、只有32個保留字(reserved keywords),使變數、函數命名有更多彈性。
5、部份的變數類型可以轉換,例如整型和字元型變數。
6、通過指針(pointer),C語言可以容易的對存儲器進行低級控制。
7、預編譯處理(preprocessor)讓C語言的編譯更具有彈性。