以創建交易腳本為例,詳細的解釋一下使用LoadRunner進行壓力測試的過程。關于如何定義測試目標及每個步驟詳細的操作過程在操作手冊中有解釋,這里就不說了。
一、 使用VUGen錄制腳本
1、根據應用程序架構選擇相應的協議。一般象B/S的程序用單一的http協議就可以了。
2、開始錄制。根據所選協議的不同,出現的對話框不不同的。選擇http協議的話需要錄入url地址,在這步錄入需要測試的地址如https://www.alipay3.net。
3、錄制腳本:在一個腳本中,默認有三個動作:vuser_init Action vuser_end。通常把初始化操作放到vuser_init中,具體需要測試的操作放在Action中,vuser_end動作目前來說沒有什么用處。在創建交易腳本中,需要測試的操作包括創建支付寶交易、買家付款、賣家發貨、買家確認收貨。每一個操作都必須首先登陸才能進行。
4、添加事務:為了使錄制的腳本更易讀,錄制過程中要為每一個獨立的操作添加事務。比如說登陸、買家付款都放在一個單獨的事務中。特別注意,因為本次測試目標是每秒內總的交易數,所以需要分別給每一個測試腳本的Action操作都加上一個統一的事務,名稱都叫做“Action”,以便衡量是否可以達到目標。
5、添加驗證點:腳本錄制好后,在需要的地方加上驗證點,來檢測腳本是否執行成功。以登陸操作來說,在提交登陸的腳本后面,右擊鼠標,選擇Insert—NewStep,在出現的對話框中選擇Web Checks—Text Check,進行文字驗證,查找退出這兩個字是否出現。如果出現就說明登陸成功了。
6、根據需要對變量參數化:在登陸操作中需要參數化的值包括:URL,登陸帳號、登陸密碼。點擊工具欄的Param List按鈕可以創建參數。當新建一個參數后,LR會在當前腳本的目錄下自動創建一個文件存放參數的值。我們不要這個默認的文件名,把所有參數的文件名都修改為“D:\LrData\Email.dat”[文件路徑及名稱都是可以手工修改的],這樣可以在多個腳本中共享相同的變量。
a) url、登陸帳號、登陸密碼:這幾個參數都是手工在LR中輸入,然后保存到文件中。
b) 交易號:在查詢交易明細腳本中,會隨機的選取100個交易查看其明細。這種情況下,交易號直接從數據庫中取得比較方便。但是必須在本地安裝oracle客戶端。如果沒有裝oralce客戶端,可以首先登陸到PL/SQL中,查詢100個交易號,選中把查詢結果,選擇導出到CSV文件中。如下圖:
導出后,在LR中打開Param List,選中交易號這個參數,點擊Edit With NotePad按鈕,把csv文件的內容拷貝到這個里面即可。注意拷貝前需要用支持列編輯的文本工具打開csv文件,去掉前后的引號。保存文件成功后,在LR中就可以看到導出的交易號了。
7、在Vuser中運行腳本,確認腳本可以正常運行。
二、 使用Controller設置場景進行測試
1、創建場景:由于我們這次的測試目標是以每秒N個交易,所以選擇基于目標的場景。創建場景的同時,加入需要測試的腳本。
2、定義測試目標:
場景創建成功后,單擊Edit Scenario Goals定義測試目標。
在這個對話框中新建一個測試目標,類型為:Transactions per Second,事務名稱為我們統一定義的“Action”,事務數量根據需要設置。Vuser的數量設置從20到500。
3、設置運行時間:
也是在Edit Scenario Goals中,可以設置達到目標后再運行多少時間。
4、Run-Time Setting:(特別注意)
在VuGen中也有Run-Time Setting,但是在那里設置好的參數不會被帶到Controller中,需要重新設置。對每一個腳本都需要設置。
a) Think Time:這個選為Ignore think time,否則結果中的事務響應時間很大,包含了這個思考時間。
b) 打開驗證點檢查功能:在Preferences選項中,給Enable Image and text check打勾,否則腳本執行時不會去檢查驗證點的。
c) 設置Action的迭代次數:在Run Logic中,單獨設置腳本中每個動作的執行次數。例如在查詢交易明細腳本中,需要模擬一次登陸,查詢10次明細的情況,就需要設置Action動作迭代10次。
5、添加需要監控的性能參數
這次我們測試的服務器是Linux,需要得到在各種壓力下服務器的負載情況。Linux的性能參數在場景中沒有默認被監控,所以需要手動添加。要監控Linux的資源,需要在服務器上運行一個叫做rstatd的進程,這個進程可以從網上下載。在服務器上啟動這個進程后,
在測試場景中,手工將Available Graphs的UNIX Resources拖動到右邊的視圖中,然后右擊,選擇Add Measurements,添加需要監視的服務器。
圖中,上面一個Add添加需要監視的服務器,下面的Add是用來添加需要監視的參數,包括Average Load等等。
6、運行場景,保存執行結果
運行時,需要選擇運行結果保存的路徑及文件。這些結果文件可以在Analysis中查看。
三、 查看運行結果
第二步場景運行結束后,通過菜單Results—Analysis Results打開運行結果。
在Analysis中,默認顯示以下類型的結果分析圖。
需要手工把Unix資源的圖打開,單擊上圖中的New Graph,出現下面的對話框。
選擇System Resources下的UNIX Resources,單擊Open Graph,就可以看到在場景中所監視的各個性能指標的曲線圖了。
點擊保存可以把結果保存為*.lrr的文件,下次可以直接通過Analysis打開。
四、 比較2次或者多次場景運行的結果
測試中,為了提高系統的性能,會修改代碼或者更改架構,這時候我們需要對修改前后的場景運行結果進行比較,通過一些性能指標的曲線圖比較直觀的了解系統的變化。
在Analysis中,通過菜單File—Cross With Result可以合并結果進行比較。
通過Add按鈕可以添加多個*.lrr文件進行結果的比較,點OK后會出現各個結果的比較圖。