LoadRunner 技巧之 集合點設置


 

  Loadrunner 技巧已經整理4篇了,你個一定疑問,這些知識點,網上隨處可見。確實,由於長時間沒有使用這個工具,造成我的一些概念開始在大腦中模糊,我只是用這種方式來溫習。

----------------------

  在loadrunner的虛擬用戶中,術語concurrent(並發)和simultaneous(同時)存在一些區別,concurrent 是指虛擬場景中參於運行的虛擬用戶。而simultaneous與集合點(rendzvous point)關系更密切,是指在同一時刻一起執行某個任務的虛擬用戶。

  我們來想象一個場景,10名運動員參加長跑比賽,出發點同時起跑,他們是並排奔跑的;跑了N圈之后,因為有體能更強的,有體能稍弱的,他們的隊形並排變成了前后。幾乎一個跑道就可以供應他們的奔跑(運行),那么其余的9條跑道就是空閑的。

為了充分的利用跑道,可以將跑道的起點設置一個集合點,當所有運動員跑完一圈后在起跑點集合,然后再同時起跑。

運動員可以看作是虛擬用戶,跑道可以看作是系統資源。設置集合點可以模式更加真實的並發請求,從而增加對系統的負載。

下面錄制一個登錄觸摸屏版139郵箱的腳本。錄制步驟:

1、打開登錄頁面

2、插入集合點

3、輸入用戶名密碼,點擊登錄按鈕

4、登錄頁面加載完成,錄制結束

 

腳本添加集合點                                                                    

當我們在不熟悉腳本的情況下,可以通過世錄制操作面板來添加集合點。

 

如果你非常熟悉每一段腳本代碼的作用,可以在腳本中添加:lr_rendezvous 集合點函數。

錄制代碼如下:

Action()
{

    web_url("wapmail.10086.cn",
        "URL=http://wapmail.10086.cn/",
        "Resource=0",
        "RecContentType=text/html",
        "Referer=",
        "Snapshot=t19.inf",
        "Mode=HTML",
        EXTRARES,
        "Url=http://wapmail.10086.cn:8000/img/p/logo.jpg", ENDITEM,
        "Url=/favicon.ico", "Referer=", ENDITEM,
        LAST);

    web_custom_request("urs.asmx",
        "URL=https://urs.microsoft.com/urs.asmx?MSURS-Client-Key=FcIacsb4XHR0aOJzGG/quQ%3d%3d&MSURS-Patented-Lock=NGkcbdtnuEs%3d",
        "Method=POST",
        "Resource=0",
        "RecContentType=text/xml",
        "Referer=",
        "Snapshot=t20.inf",
        "Mode=HTML",
        "EncType=text/xml; charset=utf-8",
        "Body=<RepLookup v=\"3\"><G>ED8654D5-B9F0-4DD9-B3E8-F8F560086FDF</G><O>F03F2D77-79E1-4DEC-BBF8-81A5C0790160</O><D>9.0.8110.0</D><C>9.00.8112.16421</C><OS>6.1.7601.1.0</OS><I>9.0.8112.16421</I><L>zh-CN</L><R><Rq><URL>aHR0cDovL3dhcG1haWwuMTAwODYuY24v</URL><O>POST</O><T>TOP</T><HIP>218.204.255.90</HIP></Rq><Rq><URL>aHR0cDovL3dhcG1haWwuMTAwODYuY24vaW5kZXguaHRt</URL><O>POST</O><T>ACTION</T><HIP>218.204.255.90</HIP></Rq></R></RepLookup>",
        LAST);

    web_custom_request("urs.asmx_2",
        "URL=https://urs.microsoft.com/urs.asmx?MSURS-Client-Key=C84C0w6qif5yiuTi%2bfaoMg%3d%3d&MSURS-Patented-Lock=EQjsDl4IFSQ%3d",
        "Method=POST",
        "Resource=0",
        "RecContentType=text/xml",
        "Referer=",
        "Snapshot=t21.inf",
        "Mode=HTML",
        "EncType=text/xml; charset=utf-8",
        "Body=<RepLookup v=\"3\"><G>ED8654D5-B9F0-4DD9-B3E8-F8F560086FDF</G><O>F03F2D77-79E1-4DEC-BBF8-81A5C0790160</O><D>9.0.8110.0</D><C>9.00.8112.16421</C><OS>6.1.7601.1.0</OS><I>9.0.8112.16421</I><L>zh-CN</L><R><Rq><URL>aHR0cDovL3dhcG1haWwuMTAwODYuY24v</URL><O>PRE</O><T>TOP</T><HIP>218.204.255.90</HIP></Rq></R></RepLookup>",
        LAST);


lr_rendezvous("集合點") //添加集合點
lr_start_transaction(
"登陸"); //添加事務 web_submit_data("index.htm", "Action=http://wapmail.10086.cn/index.htm", "Method=POST", "Referer=http://wapmail.10086.cn/", "Mode=HTML", ITEMDATA, "Name=ur", "Value=fnngj", ENDITEM, "Name=pw", "Value=heng198876", ENDITEM, "Name=apc", "Value=0", ENDITEM, "Name=_swv", "Value=5", ENDITEM, "Name=a", "Value=3,5 ", ENDITEM, "Name=_fv", "Value=3", ENDITEM, "Name=clt", "Value=5", ENDITEM, LAST); web_submit_data("index.htm_2", "Action=http://wapmail.10086.cn/index.htm", "Method=POST", "RecContentType=text/html", "Referer=http://wapmail.10086.cn/", "Snapshot=t22.inf", "Mode=HTML", ITEMDATA, "Name=ur", "Value=XXXXX", ENDITEM, //登陸用戶名 "Name=pw", "Value=ooooo", ENDITEM, //登陸密碼 "Name=apc", "Value=0", ENDITEM, "Name=_swv", "Value=5", ENDITEM, "Name=a", "Value=3,5 ", ENDITEM, "Name=_fv", "Value=3", ENDITEM, "Name=clt", "Value=5", ENDITEM, LAST); web_custom_request("handler", "URL=http://m.mail.10086.cn/wp1/w3/handler", "Method=POST", "Resource=0", "RecContentType=text/html", "Referer=http://m.mail.10086.cn/bv1/home.html?mo=U0j5GuvVaLG3Xz0qMibbQok8g34_OABo&vn=288&logintype=0&cv=3&swv=5&cli=5", "Snapshot=t23.inf", "Mode=HTML", "EncType=application/x-www-form-urlencoded;charset=UTF-8", "Body=&mo=U0j5GuvVaLG3Xz0qMibbQok8g34_OABo&vn=288&vid=&__randomNumber=1362403651558", EXTRARES, "Url=/bv1/css/public.css?vn=288", "Referer=http://m.mail.10086.cn/bv1/home.html?mo=U0j5GuvVaLG3Xz0qMibbQok8g34_OABo&vn=288&logintype=0&cv=3&swv=5&cli=5", ENDITEM, "Url=/bv1/js/home.js?vn=288", "Referer=http://m.mail.10086.cn/bv1/home.html?mo=U0j5GuvVaLG3Xz0qMibbQok8g34_OABo&vn=288&logintype=0&cv=3&swv=5&cli=5", ENDITEM, LAST); web_custom_request("costanalysis", "URL=http://m.mail.10086.cn/wp1/w3/costanalysis", "Method=POST", "Resource=0", "RecContentType=text/html", "Referer=http://m.mail.10086.cn/bv1/home.html?mo=U0j5GuvVaLG3Xz0qMibbQok8g34_OABo&vn=288&logintype=0&cv=3&swv=5&cli=5", "Snapshot=t24.inf", "Mode=HTML", "EncType=application/x-www-form-urlencoded;charset=UTF-8", "Body=&mo=U0j5GuvVaLG3Xz0qMibbQok8g34_OABo&vn=288&vid=&cmd=999&d=478&b=1&t=710&body=2&r=5&ajaxInitTime=419&ajaxCostTime=285&ajaxBeginTime=0&downBeginTime=156&initBeginTime=704&logintime=5100&homejstime=2&homeutiljstime=2&ajaxSendTime=1362403651558&redirectTime=-1&__randomNumber=1362403652268", EXTRARES, "Url=/bv1/img/global_24.png", "Referer=http://m.mail.10086.cn/bv1/home.html?mo=U0j5GuvVaLG3Xz0qMibbQok8g34_OABo&vn=288&logintype=0&cv=3&swv=5&cli=5", ENDITEM, "Url=/favicon.ico", "Referer=", ENDITEM, LAST); web_custom_request("urs.asmx_3", "URL=https://urs.microsoft.com/urs.asmx?MSURS-Client-Key=maVKmMoyQiei4%2bdFLSDDAA%3d%3d&MSURS-Patented-Lock=HitWNt%2b1Bns%3d", "Method=POST", "Resource=0", "RecContentType=text/xml", "Referer=", "Snapshot=t25.inf", "Mode=HTML", "EncType=text/xml; charset=utf-8", "Body=<RepLookup v=\"3\"><G>ED8654D5-B9F0-4DD9-B3E8-F8F560086FDF</G><O>F03F2D77-79E1-4DEC-BBF8-81A5C0790160</O><D>9.0.8110.0</D><C>9.00.8112.16421</C><OS>6.1.7601.1.0</OS><I>9.0.8112.16421</I><L>zh-CN</L><R><Rq><URL>aHR0cDovL20ubWFpbC4xMDA4Ni5jbi9idjEvaG9tZS5odG1sP21vPVUwajVHdXZWYUxHM1h6MHFNaWJiUW9rOGczNF9PQUJvJnZuPTI4OCZsb2dpbnR5cGU9MCZjdj0zJnN3dj01JmNsaT01</URL><O>PRE</O><T>TOP</T><HIP>113.108.212.38</HIP></Rq></R></RepLookup>", LAST); web_custom_request("urs.asmx_4", "URL=https://urs.microsoft.com/urs.asmx?MSURS-Client-Key=r/4pztMEzQOon4ZLeymWxw%3d%3d&MSURS-Patented-Lock=a7q4TZRzKXk%3d", "Method=POST", "Resource=0", "RecContentType=text/xml", "Referer=", "Snapshot=t26.inf", "Mode=HTML", "EncType=text/xml; charset=utf-8", "Body=<RepLookup v=\"3\"><G>ED8654D5-B9F0-4DD9-B3E8-F8F560086FDF</G><O>F03F2D77-79E1-4DEC-BBF8-81A5C0790160</O><D>9.0.8110.0</D><C>9.00.8112.16421</C><OS>6.1.7601.1.0</OS><I>9.0.8112.16421</I><L>zh-CN</L><R><Rq><URL>aHR0cDovL20ubWFpbC4xMDA4Ni5jbi9idjEvaG9tZS5odG1sP21vPVUwajVHdXZWYUxHM1h6MHFNaWJiUW9rOGczNF9PQUJvJnZuPTI4OCZsb2dpbnR5cGU9MCZjdj0zJnN3dj01JmNsaT01</URL><O>POST</O><T>TOP</T><HIP>113.108.212.38</HIP></Rq></R></RepLookup>", LAST); lr_end_transaction("登陸",LR_AUTO); //登錄事物結束 return 0; }

 

 

控制器中設置集合點策略                                                       

  我們在Virtual User Generator 中回放腳本無法體現集合點的作用。集合點是在多用戶並發運行的時候才能起作用。所以,我們需要把腳本導入到Controller 中進行進一步的設置。

1、打開Controller (控制器),導入錄制的腳本。

2、菜單欄 Scenario ---> Rendezvous 打開集合點設置界面

 

我們可以看到Vusers 列表框里有10個集合點(1~10),這里的數量和我們設置的虛擬用戶數一致。

 我們可以點擊選中某個集合點,點擊“Disable VUser” 按鈕,使其不參與集合點。(某班級早晨集合跑步,A同學肚子痛,經過老師的允許不參與早晨的集合跑步。)

點擊“Policy...”來設置集合點的策略:

下面來看看這三種策略的含義

Release when :當所有虛擬用戶中的x % 到達集合點進釋放,即僅當指定百分比的虛擬用戶到達集合點時,才釋放虛擬用戶。

注意:此選項將會干擾場景的計划。如果選擇此選項,場景將不按計划運行。

 

Release when :當所有正在運行的虛擬用戶中的x %到達集合點時釋放,即僅當場景中指定百分比的、正在運行的虛擬用戶到達集合點時,才釋放虛擬用戶。

  還有不在運行的虛擬用戶? 假如,設置為1分鍾啟動一個用戶,當然會存在因為用戶還沒啟動,所以無法參與集合點。

 

Release when : 當個虛擬用戶到達集合點時釋放,即僅當指定數量的虛擬用戶到達集合點時,才釋放虛擬用戶。

  這個很好理解,當我用百分比不太好衡量集合點的虛擬用戶數,當然可以設置具體的用戶數。

 

Timeout between Vusers (虛擬用戶之間的超時)框中輸入一個超時值。

  假如設置了集合10用戶並發,結果9個用戶已經集合到位,還剩1個虛擬用戶,左等右等就是等不來。那總不能一直等下去吧。設定了個時間,假如30秒還不來,那就不管它了。

  超時的時長默認是30秒,我們可以根據具體的被測應用進行調整。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM