LR集合點與事務
舉個例子:如果現在測試登錄的負載情況,我們需要先在登錄步驟之前插入一個集合,把登陸的整個操作(訪問網頁,輸入用戶名和密碼,提交)放到一個事務裏面,此時模擬500人登錄。這個時候500個Vuser會在集合點處集合,然後並發對系統施壓,怎樣施壓呢,就是進入事務,對定義的事務進行操作。等到完成壓力測試後,後生成報告,報告中會告訴我們,每秒處理了多少事務(每秒事務數、tps),每個事務處理需要多長時間(事務響應時間)等等。由此可見,集合點和事務是很重要的。
集合點:
lr_rendezvous( const char *rendezvous_name);
舉例說明:
lr_rendezvous("addRendzvous");
用法:
(1)在腳本中右鍵(插入——集合)
(2)插入——集合
(3)錄制過程中,點擊“插入集合點”
事務:
開始事務:lr_start_transaction( const char *transaction_name );
結束事務:lr_end_transaction( const char *transaction_name, int status ) ;
舉例說明:
lr_start_transaction("Login");
……一系列操作
lr_end_transaction("Login", LR_AUTO);
用法:
(1)在腳本中右鍵(插入——開始事務——結束事務)
(2)插入——開始事務——結束事務
(3)錄制過程中,點擊“開始事務”——“結束事務”
完整實例:
Action()
{
lr_rendezvous("addRendzvous");
lr_start_transaction("Login");
web_reg_save_param("WCSParam3",
"LB/IC=userSession value=",
"RB/IC=>",
"Ord=1",
"Search=Body",
"RelFrameId=1.2.1",
LAST);
web_url("WebTours",
"URL=http://127.0.0.1:1080/WebTours/",
"TargetFrame=",
"Resource=0",
"RecContentType=text/html",
"Referer=",
"Snapshot=t2.inf",
"Mode=HTML",
LAST);
web_reg_find("Text=zyt",
LAST);
web_submit_data("login.pl",
"Action=http://127.0.0.1:1080/WebTours/login.pl",
"Method=POST",
"TargetFrame=body",
"RecContentType=text/html",
"Referer=http://127.0.0.1:1080/WebTours/nav.pl?in=home",
"Snapshot=t3.inf",
"Mode=HTML",
ITEMDATA,
"Name=userSession", "Value={WCSParam3}", ENDITEM,
"Name=username", "Value=zyt", ENDITEM,
"Name=password", "Value=123456", ENDITEM,
"Name=JSFormSubmit", "Value=off", ENDITEM,
"Name=login.x", "Value=36", ENDITEM,
"Name=login.y", "Value=7", ENDITEM,
LAST);
lr_end_transaction("Login", LR_AUTO);
return 0;
}
註意事項:
集合點必須在事務之前,起始事務名稱必須一致。
LR集合點與事務