日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Loadrunner 录制登录操作

發(fā)布時(shí)間:2023/12/29 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Loadrunner 录制登录操作 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

腳本業(yè)務(wù)流:訪問Discuz論壇首頁——登錄論壇——退出論壇。本次使用LoadRunner11版本。

一、錄制腳本注意

??? 1、確保Discuz論壇能在服務(wù)器運(yùn)行正常。

??? 2、錄制前先試訪問Discuz論壇注冊一個(gè)測試用戶。

??? 3、選擇錄制協(xié)議,Discuz論壇是一個(gè)B/S架構(gòu)的web論壇,使用常用協(xié)議“web(HTTP/HTML)”錄制。

??? 4、錄制選項(xiàng)的設(shè)置,特別注意錄制時(shí)的HTTP/HTML級(jí)別的選擇是“基于HTML的腳本”還是“基于URL的腳本”,這里選擇“基于HTML的腳本”。

??? 5、錄制完腳本后,先保存腳本,再回放一遍。

二、優(yōu)化腳本

??? 使用LoadRunner錄制后的腳本,通常都是需要優(yōu)化完善腳本。這里只展示action中的登錄部分,優(yōu)化完善后的腳本如下:

Action_login()
{

?lr_think_time(12);

??? //添加登錄時(shí)的集合點(diǎn)Login
?lr_rendezvous("login");

?//設(shè)置開始事務(wù)
?lr_start_transaction("login");
?
?web_submit_data("member.php",
??"Action=http://127.0.0.1/Discuz/upload/member.php?mod=logging&action=login&loginsubmit=yes&infloat=yes&lssubmit=yes&inajax=1",
??"Method=POST",
??"RecContentType=text/xml",
??"Referer=http://127.0.0.1/Discuz/upload/forum.php",
??"Snapshot=t2.inf",
??"Mode=HTML",
??ITEMDATA,
??"Name=fastloginfield", "Value=username", ENDITEM,
??"Name=username", "Value={username}", ENDITEM,
??"Name=password", "Value={password}", ENDITEM,
??"Name=quickforward", "Value=yes", ENDITEM,
??"Name=handlekey", "Value=ls", ENDITEM,
??LAST);

??? //輸出參數(shù)化日志信息
?lr_output_message("登錄用戶名:%s", lr_eval_string("{username}"));
?lr_output_message("登錄密碼:%s", lr_eval_string("{password}"));

?web_add_cookie("mlMh_2132_checkfollow=1; DOMAIN=127.0.0.1");

?web_add_cookie("mlMh_2132_lastact=1399082672%09forum.php%09; DOMAIN=127.0.0.1");

?web_add_cookie("mlMh_2132_checkpm=1; DOMAIN=127.0.0.1");

?

??? //設(shè)置關(guān)聯(lián) Correlation comment - Do not change!Original value='935343df' Name ='CorrelationParameter_1'
?web_reg_save_param_ex(
??"ParamName=CorrelationParameter_1",
??"LB=formhash=",
??"RB=\">退出",
??SEARCH_FILTERS,
??"Scope=Body",
??"RequestUrl=*/forum.php*",
??LAST);


?//添加文本檢查點(diǎn),檢查登錄用戶yuxiuquan是否登錄
?web_reg_find("Text=yuxiuquan",
??LAST);


?web_url("forum.php_2",
??"URL=http://127.0.0.1/Discuz/upload/forum.php",
??"Resource=0",
??"RecContentType=text/html",
??"Referer=",
??"Snapshot=t3.inf",
??"Mode=HTML",
??EXTRARES,
??"URL=static/image/common/background.png", ENDITEM,
??"URL=static/image/common/nv.png", ENDITEM,
??"URL=static/image/common/search.png", ENDITEM,
??"URL=static/image/common/arrwd.gif", ENDITEM,
??"URL=static/image/feed/friend_b.png", ENDITEM,
??"URL=static/image/feed/favorite_b.png", ENDITEM,
??"URL=static/image/feed/thread_b.png", ENDITEM,
??"URL=static/image/feed/magic_b.png", ENDITEM,
??"URL=static/image/feed/medal_b.png", ENDITEM,
??"URL=static/image/common/tip_bottom.png", ENDITEM,
??"URL=static/image/common/style_switch.png", ENDITEM,
??"URL=static/image/common/user_online.gif", ENDITEM,
??"URL=static/image/common/qmenu.png", ENDITEM,
??"URL=static/image/common/nv_a.png", ENDITEM,
??"URL=static/image/common/pt_item.png", ENDITEM,
??"URL=static/image/common/chart.png", ENDITEM,
??"URL=static/image/feed/task_b.png", ENDITEM,
??"URL=static/image/common/scrolltop.png", ENDITEM,
??"URL=static/image/common/titlebg.png", ENDITEM,
??"URL=http://cp.discuz.qq.com/tips/get?rand=310&s_id=&product_version=X2.5&product_release=20120413&fix_bug=25000000&is_founder=&s_url=http%3A%2F%2F127.0.0.1%2FDiscuz%2Fupload%2F&last_send_time=&ts=1399082672&sig=&admin_id=0&group_id=10&open_id=&uid=2&callback=discuzTipsCallback", ENDITEM,
??LAST);

?//設(shè)置結(jié)束事務(wù)
?lr_end_transaction("login", LR_AUTO);
?

return 0;
}

?? 1、事務(wù)設(shè)置,開始事務(wù)和結(jié)束事務(wù)的名稱必須一致,事務(wù)的設(shè)置必須成對出現(xiàn),即有開始事務(wù)也要有結(jié)束事務(wù),開始事務(wù)應(yīng)該放在腳本開始的位置,結(jié)束事務(wù)放在腳本結(jié)束的位置,但不要將思考時(shí)間(lr_think_time函數(shù))放在事務(wù)開始和事務(wù)結(jié)束之間。其實(shí),設(shè)置事務(wù),可以在“Run_time Settings”里設(shè)置的,可以設(shè)置成“將每個(gè)操作定義為一個(gè)事務(wù)”,也可以設(shè)置為“將每個(gè)步驟定義為一個(gè)事務(wù)”,根據(jù)需要設(shè)置。我這里是自己手動(dòng)在腳本設(shè)置的。

????使用函數(shù):lr_start_transaction("事務(wù)名稱");

??????????????????lr_end_transaction("事務(wù)名稱",LR_AUTO);

?? 2、檢查點(diǎn)設(shè)置,LR的檢查點(diǎn)分為文本檢查點(diǎn)和圖像檢查點(diǎn),添加檢查點(diǎn)的方法很簡單,在LR的樹形視圖中,打開視圖登錄頁面,選擇需要檢查的內(nèi)容(文本或者圖像),鼠標(biāo)右鍵選擇“添加文本檢查點(diǎn)(web_reg_find())”即可,若要手動(dòng)添加檢查點(diǎn),則需要把檢查點(diǎn)設(shè)置在返回頁面的之前。最后,在腳本中添加了檢查點(diǎn),要在Vuser->Run-Tme Settings中更改下設(shè)置,勾選Enable Image and text check。

??? 使用函數(shù):web_find() 或 web_reg_find() 或 web_image_check(),下面分別說明

?? (1)web_find()

??? 參數(shù)舉例:web_find("web_find","RighOf=a","LeftOf=b","What=name",LAST);

??? 參數(shù)解釋:"web_find"定義該查找函數(shù)的名稱;“LeftOf”和“RighOf=”用來定義查找字符的左右

邊界;“What=”定義查找內(nèi)容。

??? (2)web_reg_find()

??? 參數(shù)舉例:web_reg_find("Search=Body","SaveCount=ddd","Test=aaa",LAST);

??? 參數(shù)解釋: Search用來定義查找范圍,SaveCount定義查找計(jì)數(shù)變量名稱,該參數(shù)可以記錄在緩

存中查找內(nèi)容出現(xiàn)的次數(shù),可以使用該值,來判斷要查找的內(nèi)容是否被找到。

??? (3)web_image_check()

??? 參數(shù)說明:web_image_check("web_image_check","Alt=","Src=",LAST);;

??? 參數(shù)解釋:“Alt”和“Src”的值直接取該圖片在網(wǎng)頁源代碼中相應(yīng)參數(shù)的值。

??? 3、參數(shù)化設(shè)置,LR錄制登錄的腳本,一般需要參數(shù)化腳本中的登錄用戶和對應(yīng)的密碼,以便更加真實(shí)地模仿系統(tǒng)的業(yè)務(wù)操作。參數(shù)化的設(shè)置,點(diǎn)擊工具欄圖標(biāo)打開參數(shù)列表,或者點(diǎn)擊菜單“Vuser--參數(shù)列表”,或使用快捷方式“Ctrl+L”,點(diǎn)擊新建,定義參數(shù)名稱username和password,創(chuàng)建表并輸入內(nèi)容

后,這里特別需要注意設(shè)置的是參數(shù)名username和password相對應(yīng),通過參數(shù)列表中的數(shù)據(jù)方式和更新值方式來設(shè)置,username參數(shù)要與password參數(shù)對應(yīng)設(shè)

置正確,腳本回放時(shí)才能模擬用戶登錄成功,如圖:

?????(1)、username參數(shù)名設(shè)置

(2)password參數(shù)名設(shè)置

?? (3)、參數(shù)化設(shè)置中,“Select next row”和“Update value on”這兩個(gè)屬性組合,產(chǎn)生九種組合方式,每種方式都不一樣,參數(shù)化的結(jié)果也不一樣,下面是參數(shù)取值方式說明

?????? Select next row:
?????? Sequential:每個(gè)VU按照順序讀取。每一個(gè)虛擬用戶都會(huì)按照相同的順序讀取。
?????? Random:每個(gè)VU隨機(jī)讀取一個(gè)。
????? ?Unique:每個(gè)VU順序取唯一的值。注意:使用該類型必須注意數(shù)據(jù)池中數(shù)據(jù)充足。
?????? Same Line As 某個(gè)參數(shù)(比如Name):和前面定義的參數(shù)Name 取同行的記錄。通常用在有關(guān)聯(lián)性的數(shù)據(jù)上面。
?????? Update value on:
?????? Once 在所有的反復(fù)中都使用同一個(gè)值? 只取一次
????? ?each iteration 每次反復(fù)都要取新值
?????? each occurrence 只要發(fā)現(xiàn)該參數(shù)就要重新取值,也就是如果一個(gè)action中有多個(gè)該參數(shù),每遇到一個(gè)就要重新取一個(gè)值。

???? (4)、在腳本中,選中需要參數(shù)化的腳本,鼠標(biāo)右鍵“使用現(xiàn)有參數(shù)”選擇對應(yīng)要參數(shù)化的參數(shù)名即可。

?????(5)、在腳本中輸出參數(shù)化日志信息???

????? ?//輸出參數(shù)化日志信息
????? ?lr_output_message("登錄用戶名:%s", lr_eval_string("{username}"));
?????? lr_output_message("登錄密碼:%s", lr_eval_string("{password}"));

???? 4、關(guān)聯(lián)設(shè)置,由于我的LR工具在錄制的時(shí)設(shè)置了關(guān)聯(lián)規(guī)則,在腳本中可以使用自動(dòng)掃描腳本中關(guān)聯(lián)值快捷鍵Ctrl+F8,掃描結(jié)果切換樹形視圖,可以看到如圖

?點(diǎn)擊“關(guān)聯(lián)”,返回到腳本頁面,如圖

再次回放腳本,在菜單“視圖--測試結(jié)果”中可以看到關(guān)聯(lián)函數(shù)執(zhí)行成功。?????

???? 5、集合點(diǎn)設(shè)置,集合點(diǎn)的設(shè)置在菜單“插入--集合”即可,集合點(diǎn)名稱需顧名思義,看到就能理解。另外需要注意,集合點(diǎn)要放在開始事務(wù)的前面,思考時(shí)間(lr_think_time函數(shù))的后面。

????? 使用函數(shù):lr_rendezvous("集合點(diǎn)名稱");

總結(jié)

以上是生活随笔為你收集整理的Loadrunner 录制登录操作的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。