1. 程式人生 > >LoadRunner 9 關聯

LoadRunner 9 關聯

line direct ima tca 區別 borde border user param

1)關聯的定義

很多時候,當時錄完之後,沒有問題。過一段時間再跑腳本,就不會成功。比如session,過期了,再一次使用,就會出錯。這個時候,需要在每次訪問的時候動態的拿到session,這種情況就需要用到關聯。

2)參數化和關聯的區別的闡述

參數化變的是提交的東西。關聯的值是從服務器響應中拿到

3)什麽時候需要關聯?

服務器返回的動態變化且對業務有影響的

關聯小例子

演示WebTours登錄時,如果總是用同一個session,可能登錄不成功,需要對session關聯。

Action()
{
    web_url("WebTours",
        "URL=http://127.0.0.1:1080/WebTours/",
        "TargetFrame=",
        "Resource=0",
        "RecContentType=text/html",
        "Referer=",
        "Snapshot=t8.inf",
        "Mode=HTML",
        EXTRARES,
        "URL=http://www.bing.com/favicon.ico", ENDITEM,
        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=t9.inf",
        "Mode=HTML",
        ITEMDATA,
        "Name=userSession", "Value=121391.541595788zcttAHHptcAiDDDDDHtztptztfcf", ENDITEM,
        "Name=username", "Value=jojo", ENDITEM,
        "Name=password", "Value=bean", ENDITEM,
        "Name=JSFormSubmit", "Value=off", ENDITEM,
        "Name=login.x", "Value=54", ENDITEM,
        "Name=login.y", "Value=16", ENDITEM,
        LAST);

    web_url("SignOff Button",
        "URL=http://127.0.0.1:1080/WebTours/welcome.pl?signOff=1",
        "TargetFrame=body",
        "Resource=0",
        "RecContentType=text/html",
        "Referer=http://127.0.0.1:1080/WebTours/nav.pl?page=menu&in=home",
        "Snapshot=t10.inf",
        "Mode=HTML",
        LAST);
return 0;
}

找到usersession是從哪個頁面返回的。

技術分享

右鍵value的值添加關聯。

關聯後代碼變化:

Action()
{
    web_reg_save_param_ex(
        "ParamName=CorrelationParameter_1",
        "LB=userSession value=",
        "RB=>\n<table border",
        SEARCH_FILTERS,
        "Scope=All",
        "IgnoreRedirections=Yes",
        "RequestUrl=*/nav.pl*
"
, LAST); web_url("WebTours", "URL=http://127.0.0.1:1080/WebTours/", "TargetFrame=", "Resource=0", "RecContentType=text/html", "Referer=", "Snapshot=t8.inf", "Mode=HTML", EXTRARES, "URL=http://www.bing.com/favicon.ico", ENDITEM, 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=t9.inf", "Mode=HTML", ITEMDATA, "Name=userSession", "Value={CorrelationParameter_1}", ENDITEM, "Name=username", "Value=jojo", ENDITEM, "Name=password", "Value=bean", ENDITEM, "Name=JSFormSubmit", "Value=off", ENDITEM, "Name=login.x", "Value=54", ENDITEM, "Name=login.y", "Value=16", ENDITEM, LAST); web_url("SignOff Button", "URL=http://127.0.0.1:1080/WebTours/welcome.pl?signOff=1", "TargetFrame=body", "Resource=0", "RecContentType=text/html", "Referer=http://127.0.0.1:1080/WebTours/nav.pl?page=menu&in=home", "Snapshot=t10.inf", "Mode=HTML", LAST); return 0; }

可運行成功。

關聯位置,在請求之前。只要是web_reg開頭的函數,是註冊函數,都放在請求之前。

web_reg_save_param_ex(
"ParamName=參數名",
"LB=左邊界",
"RB=右邊界",
SEARCH_FILTERS,
"Scope=All", //搜索區域

All - Search the entire buffer
Headers - Search only the headers
Body - Search only body data
Cookies - Search only in cookies

"IgnoreRedirections=Yes", //忽略重定向。
"RequestUrl=*/nav.pl*",
LAST);

關聯的其他方法:

自動關聯(不推薦使用)

技術分享
在運行時掃描腳本中的關聯。(不建議使用)

技術分享

集合點

1、集合點的概念:需要在某一點多個user同時執行。

2、解析集合點函數:

技術分享

lr_rendezvous("test"); 只有在control裏面起作用。

3、只能在action中添加集合點。不能添加到init和end

4、事務中添加集合點呢。如果不滿足條件,會在集合點處停止,拉長事物響應時間。所以盡量不要添加到事務裏面。

LoadRunner 9 關聯