李金萌
(河南經貿職業學院,河南 鄭州 450001)
LoadRunner 是性能測試工具中最常見的工具之一,它主要是有3 個組件,分別是Virtual User Gene rator,Controller,Analysis,分別是虛擬用戶產生器、控制器和分析器。 對于虛擬用戶產生器來說主要是代碼的生成以及調試腳本,Vuser 在方案中執行的操作是用Vuser 腳本描述的。 運行場景時,每個Vuser 去執行Vuser 腳本。 對于控制器來說,設置場景參數,管理虛擬用戶。 對于分析器來說,主要生成測試報告。 Load Runner 的版本有很多,本文主要是以LoadRunner12.55的版本為研究基礎。
在LoadRunner 安裝時需要注意的是安裝前,把所有的殺毒軟件和防火墻關閉; 若以前安裝過LoadRunner,需將其卸載干凈,必要時需要重新安裝系統;安裝路徑不要帶中文字符;LoadRunner 12 已經不再支持XP 系統,瀏覽器建議使用IE10 以上版本。
在資產管理系統中使用LoadRunner 進行自動化測試,將測試過程中的重要內容進行匯總,特別是對于虛擬用戶產生器中的思考時間、檢查點、集合點,控制器中的場景設置,分析器中的圖表的新建和合并等。 在測試過程中,如果出現亂碼,不要忘記將字符編碼改為UTF-8。 下文將對測試過程中的部分內容進行講解。
從性能測試實現的角度來說,要真實地模擬用戶操作,就必須在測試腳本中讓各個操作之間等待一段時間。 思考時間是性能測試過程中最常見的設置,其代碼為:Lr_think_time(7);該代碼的意思是等待時間為7 s,如果需要修改等待時間直接修改即可。
檢查點是 LoadRunner 重要的部分之一。LoadRunner 中腳本回放成功,只是代表請求成功,并不能代表請求的業務成功。 要判斷業務是否成功,就需要在腳本中加入檢查點。 檢查點的原理是在回放腳本時搜索特定的文本或者字符串,從而驗證請求業務的正確性。
檢查點函數:web_reg_find。 比如對界面中“歡迎您”這幾個字設置檢查點,就可以輸入以下代碼:
Web_reg_find(“Text=歡迎您”,LAST)
插入以上代碼就可以對歡迎您這幾個字進行檢查點檢查,重點看是否登錄成功。
檢查點代碼要放在檢查的代碼之前,如要對保存是否成功進行檢查,就要在保存操作代碼之前設置檢查點。 添加檢查點后點擊回放查看是否操作成功。
性能測試工具通常會模擬多個用戶對系統進行操作,有些系統允許多個完全相同的用戶同時對完全相同的數據做完全相同的操作,有些則不允許。 比如,郵箱一般允許同一個賬號在多處登錄,而QQ 賬號肯定是不允許的。 再比如,注冊某個系統時,用戶名是不能有重復,但密碼卻可以。 所以,這么多種情況都要用到參數化技巧。
LoadRunner 中參數化方法:
(1)選中需要參數化的字段的值。
(2)點擊鼠標右鍵,選擇Replace with Parameter >Create New Parameter。
(3)彈出Select or Create Parameter 彈窗,輸入參數名稱,選擇參數類型。
(4)點擊Properties 按鈕,彈出Parameter Properties彈窗。
(5)設置參數值,參數取值、更新方式。
(6) 運 行 時 設 置- Log 中, 選 擇 Parameter substitution。
(7)回放腳本的日志中,可以查看參數的具體取值情況。
此處為回放后的擴展日志,打開后可查看回放中的參數取值,如圖1 所示。
圖1 參數化設置
事務(Transaction):為了衡量服務器的性能,需要定義事務。 比如:在腳本中有一個數據查詢操作,為了衡量服務器執行查詢操作的性能,可以把這個操作定義為一個事務,這樣在運行測試腳本時,LoadRunner 運行到該事務的開始點時,就會開始計時,直到運行到該事務的結束點,計時結束。 這個事務的運行時間會在結果中顯示。
添加事務操作可以在錄制過程中進行,也可以在錄制結束后進行。 LoadRunner 允許在腳本中添加不限數量的事務。 主要代碼:
Lr_start_tramsaction(“login”);
Lr_end_tramsaction(“login”,LA_AUTO);
集合點的意思是等到特定的用戶數后再一起執行某個操作,比如一起保存或一起提交。 一般情況下使用不到集合點,不過,訂票系統或者促銷類可能會需要用到,比如說某個促銷品的促銷時間在8 點到8 點30分,這樣就可能出現在8 點時很多人一起提交的場景。
集合點函數可以幫助我們生成有效可控的并發操作。 雖然在Controller 中多用戶負載的Vuser 是一起開始運行腳本的,但是由于計算機的串行處理機制,腳本的運行隨著時間的推移,并不能完全達到同步。 這個時候需要手工的方式讓用戶在同一時間點上進行操作來測試系統并具有處理的能力,而集合點函數就能實現這個功能。 集合點只需要在腳本中添加lr _rendezvous()函數即可。
代碼為:
Lr_rendezvous(“add_save”)
下圖為集合點和事務函數,如圖2 所示。
圖2 事務和集合點設置
性能測試的場景,可以理解為功能測試中的用例,即性能測試的場景就是性能測試的用例。 性能測試的場景是為了要實現特定的測試目標而對應用執行的壓測活動。 性能測試場景的設計與執行是整個性能測試活動的核心與靈魂,沒有完整的場景設計就無法達到測試的目的,沒有合理的場景設計就不會發現系統的性能缺陷。 所開發的測試腳本,所預埋的測試數據都是為了實現特定場景所準備的。
性能測試中的場景設計是實施性能測試的基礎,只有合理的設計測試場景才能獲得有價值的測試數據,為接下來的確認瓶頸、系統調優打下基礎。 場景(Scenario)是一種用來模擬大量用戶操作的技術手段,通過配置和執行場景向服務器產生負載,驗證系統的各項性能指標是否達到用戶要求,而Controller 可以幫助場景的設計、執行以及監控進行管理。
此處值得注意的是場景設計與運行是在錄制編輯腳本完成后進行的,設計與運行場景之前最好對腳本進行檢查。 如腳本設置了集合點,點擊此處進行設置。
對于場景的設計中主要是在design 中的設置,主要的內容有場景名稱、虛擬用戶的開始用戶數、期間的持續時長、停止時虛擬用戶的情況等,其中比較難的地方是分組時對每組的情況進行設置,在此處分組是比較復雜的。 場景設計完成后點擊底部的Run 按鈕到運行界面,點擊Strat 按鈕開始運行,如圖3 所示。
圖3 Loadrunner 運行界面
LoadRunner 提供了Analysis 應用對性能測試的結果進行輔助分析。 Analysis 應用可以根據用戶在測試中獲得的性能計數器數據生成各種圖表,并提供對圖表進行合并、分解等功能。 在場景運行完成后點擊此處,打開Analysis。
在LoadRunner 中,主要是兩個方面內容,第一個是添加新的圖表,具體操作為點擊左側空白處可添加圖表。 第二個是合并圖表,具體操作為在圖表空白處右鍵點擊此處合并圖表,選擇要進行合并的圖表,點擊OK 進行合并。
特別是對于集合點來說,手動測試是很難實現的,但是可以在控制器中設置集合點策略,并通過分析器中的圖表可以清楚的看出來每個集合點的最少、最多以及平均的時間。 這是手動測試最難的地方,具體如圖4 所示。
圖4 集合點圖表
本文主要是使用的是LoadRunner 軟件進行性能測試,使用的系統是資產管理系統,通過以上關于LoadRunner 中事務、集合點、參數化、檢查點的設置,可以更加方便地對資產管理系統進行性能測試,通過文中的圖表也可得出相應操作所消耗的時間,這對于手動測試來說,是比較困難的,而且準確性有待考量。 通過自動化測試工具的使用,不僅縮短了測試時間,也讓測試數據更加準確有效。