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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

(2)LR实战之——登录脚本

發布時間:2023/12/29 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 (2)LR实战之——登录脚本 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

https://blog.csdn.net/u013493370/article/details/51788607

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

一、錄制腳本注意

??? 1、確保Discuz論壇能在服務器運行正常。

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

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

??? 4、錄制選項的設置,特別注意錄制時的HTTP/HTML級別的選擇是“基于HTML的腳本”還是“基于URL的腳本”,這里選擇“基于HTML的腳本”。

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

二、優化腳本

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

Action_login()
{

?lr_think_time(12);

??? //添加登錄時的集合點Login
?lr_rendezvous("login");

?//設置開始事務
?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);

??? //輸出參數化日志信息
?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");

?

??? //設置關聯 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);


?//添加文本檢查點,檢查登錄用戶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);

?//設置結束事務
?lr_end_transaction("login", LR_AUTO);
?

return 0;
}

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

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

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

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

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

?? (1)web_find()

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

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

邊界;“What=”定義查找內容。

??? (2)web_reg_find()

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

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

存中查找內容出現的次數,可以使用該值,來判斷要查找的內容是否被找到。

??? (3)web_image_check()

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

??? 參數解釋:“Alt”和“Src”的值直接取該圖片在網頁源代碼中相應參數的值。

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

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

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

?????(1)、username參數名設置

???? (2)password參數名設置

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

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

???? (4)、在腳本中,選中需要參數化的腳本,鼠標右鍵“使用現有參數”選擇對應要參數化的參數名即可。

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

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

???? 4、關聯設置,由于我的LR工具在錄制的時設置了關聯規則,在腳本中可以使用自動掃描腳本中關聯值快捷鍵Ctrl+F8,掃描結果切換樹形視圖,可以看到如圖

?點擊“關聯”,返回到腳本頁面,如圖

再次回放腳本,在菜單“視圖--測試結果”中可以看到關聯函數執行成功。?????

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

????? 使用函數:lr_rendezvous("集合點名稱");

總結

以上是生活随笔為你收集整理的(2)LR实战之——登录脚本的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。