LoadRunner自帶程式登入功能關聯演示

NO IMAGE

本文主要講解一下LoadRunner的關聯技術,我們以LoadRunner自帶的WEB訂票程式為範例,首先錄製一段LoadRunner自帶的飛機訂票程式,錄製登入功能即可。

為了讓自帶程式登入時驗證Session,在錄製登入指令碼前,需要對訂票程式做一些設定,啟用隱藏欄位標記(Session)

1)開啟訂票程式WEB網站,點選Administrator連結:

2)進入管理頁面,選中Set LOGIN form’s action tag to an error page

3)點選管理頁面最下方的update按鈕,儲存並更新配置。

 

好,做完設定之後,我們開始錄製一個登入操作指令碼,錄製登入操作後,產生的一段程式碼為:

Action()
{

 web_url(“WebTours”,
  “URL=http://127.0.0.1:1080/WebTours/”,
  “Resource=0”,
  “RecContentType=text/html”,
  “Referer=”,
  “Snapshot=t1.inf”,
  “Mode=HTML”,
  LAST);

 lr_think_time(20);

 lr_start_transaction(“login”);

 web_submit_data(“login.pl”,
  “Action=http://127.0.0.1:1080/WebTours/login.pl”,
  “Method=POST”,
  “RecContentType=text/html”,
  “Referer=http://127.0.0.1:1080/WebTours/nav.pl?in=home”,
  “Snapshot=t2.inf”,
  “Mode=HTML”,
  ITEMDATA,
  “Name=userSession”, “Value=109939.233211827fzftQQQpDAiDDDDDDDQcQpQQfif”, ENDITEM,
  “Name=username”, “Value=jojo”, ENDITEM,
  “Name=password”, “Value=bean”, ENDITEM,
  “Name=JSFormSubmit”, “Value=on”, ENDITEM,
  “Name=login.x”, “Value=43”, ENDITEM,
  “Name=login.y”, “Value=7”, ENDITEM,
  LAST);

 lr_end_transaction(“login”,LR_AUTO);

 return 0;
}

直接進行回放,在Replay Log中,可以看到,沒有任何報錯,呵呵,指令碼執行成功了:),我可以開始準備設計場景執行該指令碼了。

別急,其實指令碼是執行不成功的,如果現在就用這個指令碼進行測試,那意味著你進行了一次錯誤的測試。

這裡,我想說的是:LoadRunner沒有報錯,並不代表指令碼就沒有錯誤,如果LoadRunner報錯了,那指令碼就一定存在錯誤。LoadRunner在這一點是不可信的。

不信的話,你可以在在tree View檢視中,從回放截圖中可以看出,回放失敗,並沒有進入登入後頁面,如下圖所示:

從錄製的指令碼中可以看出,上段指令碼中,亮紅色標記的user Session是每次都會動態變化的,需要進行關聯,

在這裡,關聯用的函式為web_reg_save_param,列印關聯的結果函式為lr_output_message

Action()
{
     web_reg_save_param(“usersession”,

    “LB=name=userSession value=”,
    “RB=>”,
    “ORD=1”,
    LAST);

 web_url(“WebTours”,
  “URL=http://127.0.0.1:1080/WebTours/”,
  “Resource=0”,
  “RecContentType=text/html”,
  “Referer=”,
  “Snapshot=t1.inf”,
  “Mode=HTML”,
  LAST);

 lr_think_time(20);

//指令碼錄製時產生的SessionId,我做個備份

 //109939.233211827fzftQQQpDAiDDDDDDDQcQpQQfif

 lr_start_transaction(“login”);

 web_submit_data(“login.pl”,
  “Action=http://127.0.0.1:1080/WebTours/login.pl”,
  “Method=POST”,
  “RecContentType=text/html”,
  “Referer=http://127.0.0.1:1080/WebTours/nav.pl?in=home”,
  “Snapshot=t2.inf”,
  “Mode=HTML”,
  ITEMDATA,
  “Name=userSession”, “Value={usersession}”, ENDITEM,    //替換動態生成的user Session
  “Name=username”, “Value=jojo”, ENDITEM,
  “Name=password”, “Value=bean”, ENDITEM,
  “Name=JSFormSubmit”, “Value=on”, ENDITEM,
  “Name=login.x”, “Value=43”, ENDITEM,
  “Name=login.y”, “Value=7”, ENDITEM,
  LAST);

 lr_end_transaction(“login”,LR_AUTO);

    lr_output_message ( “usersession: %s”, lr_eval_string ( “{usersession}” ) );   //列印關聯到的user Session

 return 0;
}
然後再進行回放,可以看出回放成功,並且指令碼正確輸出usersession: