一、腳本創建關聯和插入檢查點
腳本錄制完成后,首先需運行腳本回放,驗證是否可回放成功,然后找出各事務請求中的關聯點!
如本例子中,錄制的場景為:打開綜合窗口收件-->查詢事項-->窗口登記-->選擇申請人-->保存辦件-->選擇意見-->下一步出件!完成以上場景后,會在【綜合窗口出件】頁面產生一條簽收結果為“未簽收”的辦件!
運行腳本后,選擇樹結構,可查看各請求的請求數據和響應結果!經過分析得出,后續請求用到的controlSeq和handleSeq,是由controlSave.do這個接口產生,因此需要在這里將controlSeq和handleSeq參數值提取,以供后續接口使用!
1、參數提取--->創建關聯
(1)選中對應的參數值,鼠標右鍵選擇“創建關聯”,在彈窗中點擊“是”;
(2)由樹結構切回腳本(Script)頁面,對應接口請求前有增加了一個提取參數的函數,需修改函數中的左、右邊界,拿多一點參數使提取結果更精確!(PS:使用正則表達式進行參數提取,此處不過多描述)
web_reg_save_param_ex( "ParamName=CorrelationParameter_1", "LB=\"controlSeq\":\"", "RB=\"}", SEARCH_FILTERS, "Scope=All", "RequestUrl=*/add.v*", "NotFound=warning", LAST);
以上步驟,完成了controlSeq的參數提取(handleSeq參數同操作),后續的事務請求中用到參數controlSeq時,其對應的值會自動替換為CorrelationParameter_1,如下圖:
2、添加文本檢查
LoadRunner中的文本檢查,相當於Jmeter中的響應斷言!
(1)在想要檢查的接口請求前后添加圖中的查找函數、打印函數,相關代碼和解釋如下:
1 web_reg_find("Search=Body", #Search用來定義查找范圍 2 "SaveCount=count", #SaveCount定義查找計數變量名稱,該參數用來記錄在緩存中查找內容出現的次數,可以使用該值,來判斷要查找的內容是否被找到; 3 "Text=騫誇笢鐪佺瀛愮鐞嗘€葷珯", #=后為查找的文本內容 4 LAST); #本例子的含義:在Body中查找內容為“騫誇笢鐪佺瀛愮鐞嗘€葷珯”的信息,並將出現次數記錄在變量count中 (注意:web_reg_find()需在對應接口請求前定義)
5
6
7 lr_output_message(lr_eval_string("{count}")); #打印變量count的值
(2)將錄制時產生的結束事務(對應接口請求所在的事務)的腳本屏蔽,用以下代碼替換:
1 if(atoi(lr_eval_string("{count}")) > 0) 2 { 3 lr_end_transaction("綜合窗口收件",LR_PASS); 4 lr_output_message("綜合窗口收件事務成功!"); 5 } 6 else 7 { 8 lr_end_transaction("綜合窗口收件",LR_FAIL); 9 lr_output_message("綜合窗口收件事務失敗!"); 10 }
#代碼含義:將找到的要檢查的字符串的個數存到count參數中。 通過判斷count的值是否大於0來判斷是否找到了所要檢查的字符串。
#atoi()函數的作用是將一個ASCII字符串轉換為整型
#lr_eval_string()函數作用是取得參數值,將字符串變量中的參數值替換為當前的參數值並將這個字符串返回
對應的文本檢查是否找到,可在回放日志中查看打印的日志:若找到文本(count>0),則打印事務成功!(PS:一個事務中可能包含多個請求,選擇其中一個代表性的請求添加文本檢查,以此來判斷事務是否成功即可)
3、驗證腳本是否運行成功
前面介紹,完成以上場景后,會在【綜合窗口出件】頁面產生一條簽收結果為“未簽收”的辦件!
(1)未運行腳本前,查看【綜合窗口出件】當前頁面有226條辦件數據;
(2)運行腳本,再刷新【綜合窗口出件】頁面,辦件數據變為了227條,說明腳本調試成功,正常產生辦件數據!
二、運行負載
腳本調試成功后,可選擇“工具”-->"創建Controller場景(L)..."打開[創建場景]彈窗,默認“手動場景”,點擊“確定”打開場景設計頁面;
在場景設計頁面,可以看到【創建場景】彈窗中初始化的數據,可雙擊修改虛擬用戶數及負載機;
在“全局計划”中設置啟動虛擬用戶、持續時間、停止虛擬用戶(一般與啟動虛擬用戶設置一致)后,可點擊【場景組】下的運行負載;頁簽切換到【運行】,如下圖:
可以在頁簽中查看場景狀態+運行結果以及一些報表結果。
三、分析結果
負載測試完成后,可點擊“結果”-->"分析結果";
打開結果分析頁面,會自動載入負載測試時的結果數據;結果分析頁面包含報告+圖表:
從【概要報告】中可以看出一些我們的測試數據:虛擬用戶數、持續時間、事務摘要及平均響應時間等,也可切換頭部頁簽查看具體圖表數據,如“平均響應時間”:
通過整合概要報告和相關圖表信息,可整理出測試的性能測試報告!!!