LoadRunner-Vuser之參數化、關聯、事務、檢查點、集合點的使用


參數化目的:模擬真實用戶操作和創建現實的結果。如果每次輸入相同的查詢內容,服務器會有相應的緩存,查詢速度就會很快,與實際用戶使用場景不一致。

(一)參數化步驟:

1. 確定需要參數化的數據(a.業務系統要求某些數據唯一 b.某些數據不改變,會對性能產生影響)

2. 選擇數據,鼠標右鍵選擇“Replace with a parameter”

3.  Param List中設置參數值和參數更新方式

(Select next row: Sequential 順序取值、Random隨機取值、Same lineas Param1 與參數1取的行數相同)

(Update Value on 參數值的變更條件:Each Iteration一次迭代中間無論調用幾次都取同一個值、Each Occurrence每調用一次參數就變更一次  Once 只取一次)

4. 在 Run-Time Settings 中 修改迭代次數和打開日誌(Run-Time Settings-> Log -> Extended Log-> Parameter substitution)

參數的調試:

在VuGen驗證參數是否正確

使用lr_eval_string()讀取參數

通過日誌檢查參數取值

Controller中多用戶併發情況下,參數是否正確

(二)創建場景Create Scenario  

1. 在Design Tab頁下  雙擊 Start Vusers 、Duration、去設置場景參數

2. 運行場景

3.在Run Tab頁下點擊Vusers...->Show Vuser Log 查看各個用戶的取值情況

變量及參數的使用技巧:

Action()
{
	char temp[10]="51testing";
	lr_output_message(temp);  //變量的使用
	lr_output_message(lr_eval_string("{param}"));   //參數的使用
	//1.值存在於變量中,但需要使用的地方必須在雙引號中間
	//2.值存在於參數中,但需要使用的地方不允許用雙引號
	lr_save_string(temp,"param1");  //將變量temp的值存入一個新的參數param1中
	lr_output_message(lr_eval_string("{param1}"));
	return 0;
}
關聯目的:捕獲動態數據,進行動態提交

(三)關聯

手工關聯

確定要捕獲的數據(可以通過回放腳本後 使用 Scan Script for Correlations 輔助關聯)

發現要捕獲的數據的文本左右邊界

腳本添加函數(web_reg_save_param)

驗證正確的執行

特點:關聯的數據是從服務器返回的,後續請求中發回給服務器,該數據是動態變化的

手動關聯的具體步驟:

1. 腳本出錯時需要關聯

2. 過濾可疑數據(在Generation Log中找該數據,看該數據是否是服務器返回的數據)

3. 重點關心post請求


(四)事務、檢查點

引入事務是爲了度量響應時間

事務時間:   函數自身+ Think time + Wasted Time + 響應時間 

響應時間:網絡(網絡延遲+ Web Page BreadDown) + 服務器處理(WWW Server+ App Server  + DB Server)

對於自動結束狀態的事務(LR_AUTO),只要服務器給用戶返回了信息,就會認爲事務是通過的。因此需要手工事務來進行判斷

可以用web_reg_find()函數來對登陸失敗或成功後頁面進行文字的查找,對事務進行判斷

web_reg_find("Search=Body","SaveCount=success","Text=Welcome",LAST);
if(atoi(lr_eval_string("{success}"))>=1)
	lr_end_transaction("Login Time", LR_PASS);
else
	lr_end_transaction("Login Time", LR_FAIL);

事務相關函數:

lr_start_transaction

lr_end_transaction

lr_start_time() 與lr_end_time()聯合使用得到程序運行時間

(五)集合點:用於模擬多用戶併發操作的一種技術手段

步驟:

 1. 確定併發操作步驟

 2. 在併發操作之前,插入集合點

 3. 修改集合策略(場景 Scenario-> Rendezvous -> Policy)

集合點不能放在事務的中間

(六)思考時間   lr_think_time(10);

發佈了39 篇原創文章 · 獲贊 10 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章