LoadRunner效能測試系統工具:VuGen

一、LoadRunner工作原理

LoadRunner效能測試系統工具:VuGen

通常我們認為LoadRunner是由三部分組成:

VuGen、Controller、Analysis

● VuGen:錄製與增強指令碼的地方,即將我們的操作行為變成程式碼。

● Controller:模擬多使用者執行指令碼,相當於模擬多使用者口對伺服器進行操作。

● Analysis:將執行時的結果儲存到EXCEL表中,然後再將資料讀取出來,並以檢視的方式來顯示。

也有人會說LoadRunner工作是由4部分組成。

LoadRunner效能測試系統工具:VuGen

二、錄製與回放的原理

LoadRunner效能測試系統工具:VuGen

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:將匹配到的次數儲存在這個變數中。