一、LoadRunner工作原理
通常我們認為LoadRunner是由三部分組成:
VuGen、Controller、Analysis
● VuGen:錄製與增強指令碼的地方,即將我們的操作行為變成程式碼。
● Controller:模擬多使用者執行指令碼,相當於模擬多使用者口對伺服器進行操作。
● Analysis:將執行時的結果儲存到EXCEL表中,然後再將資料讀取出來,並以檢視的方式來顯示。
也有人會說LoadRunner工作是由4部分組成。
二、錄製與回放的原理
LoadRunner在錄製過程中其實是將所有客戶端向伺服器傳送的請求變成了函式,由函式來代替人向伺服器傳送請求。
之所以需要在錄製時選擇協議,是因為LoadRunner一定要能看的懂客戶端向伺服器所傳送的資料內容,如果LoadRunner看不懂客戶端向伺服器傳送的資料,那麼LoadRunner就無法生成程式碼。
而生成的程式碼所看的內容,其實與抓包所看到的內容是一樣的。
所以我們通常說效能測試是基於協議錄製,自動化測試是基於物件屬性錄製。
LoadRunner錄製的方式有兩種:
一是基於HTML錄製;二是基於URL錄製
。
▲ HTML模式:基於使用者行為錄製。
▲ URL錄製:將所有的HTTP請求都錄製下來。
三、事務
(1)為什麼需要插入事務
正常我們錄製好的指令碼是不能獲取業務的響應時間的,所謂的業務響應簡單的來說就是我們一串操作步
驟的響應時間。
為了獲取這個響應時間我們會在操作前插入開始,操作結束後插入結束事務,透過可以獲取業務的響應
時間。
(2)如何插入事務
插入事務的方法有兩種:
一是錄製過程中插入事務;二是錄製後插入事務
。
一般建議在錄製過程中插入事務,因為錄製後插入事務,如果對程式碼不是很熟悉的話,那麼很容易把位置插入錯了,這樣會導到得到的響應時間不對。
插入事務後會生成以下程式碼:
//開始事務lr_start_transaction(“LOGIN”);。。。。。//結束事務lr_end_transaction(“LOGIN”, LR_AUTO);當執行開始事務時,loadrunner會計時,執行到結束事務時loadrunner也會計時將結束事務時的計時減去開始事務的計時,所得到的時間差即為事務的響應時間。其實就是計算開始事務到結束事務這段請求所消耗的時間
(3)事務的結束狀態
事務的結束狀態有四種:
LR_AUTO、LR_PASS、LR_FAIL、LR_STOP
● LR_AUTO:LoadRunner自動判斷事務的結束狀態
● LR_PASS:執行結果為透過狀態
● LR_FAIL:執行結果為失敗狀態
● LR_STOP:執行結果為停止狀態
之所以結束事務有結束狀態的要求,是因為透過結束狀態可以來確定事務是否成功,即業務是否成功。
最後可以計算出業務成功率。
那麼如何確定事務的結束狀態呢?正常應該是先做檢查點,透過檢查點的結果來判斷業務是否成功。
四、檢查點
(1)如何插入檢查點
插入檢查點的步驟如下:
1。將程式碼切換為tree模式,在tree模式下,顯示請求的資訊有兩種方式:一是html viewer;二是http viewer
2。找到需要驗證的頁面
3。選擇我們需要檢查的內容,單擊右鍵,選擇“add text check”
4。在彈出的fifind text對話方塊中,輸入相關資訊
(2)如何透過檢查點判斷事務的結束狀態
透過檢查來判斷被檢查的物件出現的次數,如果出的次數大於說明,至少找到一次,則說明業務是成功的,否則業務為失敗。
if(atoi(lr_eval_string(“{num}”)) > 0){lr_end_transaction(“LOGIN”, LR_PASS);}else{lr_end_transaction(“LOGIN”, LR_FAIL);}
(3)檢查點函式
檢查點函式語法:
int web_reg_find( const char *attribute_list, LAST );引數說明:Text:表示需要查詢的內容;Search:表示所查詢的內容所出現的位置,在哪個部分去查詢我們要的內容。有三個選項:Body、Headers、All,一般情況都是在Body,預設選項為Body。SaveCount:將匹配到的次數儲存在這個變數中。