• <menu id="w2i4a"></menu>
  • logo LoadRunner 系列教程
    文檔首頁(yè)>>LoadRunner 系列教程>>LoadRunner教程之手動(dòng)關(guān)聯(lián)詳解

    LoadRunner教程之手動(dòng)關(guān)聯(lián)詳解


    一、關(guān)聯(lián)的含義:
      關(guān)聯(lián)(correlation):在腳本回放過(guò)程中,客戶端發(fā)出請(qǐng)求,通過(guò)關(guān)聯(lián)函數(shù)所定義的左右邊界值(也就是關(guān)聯(lián)規(guī)則),在服務(wù)器所響應(yīng)的內(nèi)容中查找,得到相應(yīng)的值,已變量的形式替換錄制時(shí)的靜態(tài)值,從而向服務(wù)器發(fā)出正確的請(qǐng)求,這種動(dòng)態(tài)獲得服務(wù)器響應(yīng)內(nèi)容的方法被稱作關(guān)聯(lián)。
    二、關(guān)聯(lián)的過(guò)程:
      以登陸場(chǎng)景為例,客戶端發(fā)出獲得登錄頁(yè)面的請(qǐng)求,服務(wù)器端得到該請(qǐng)求后,返回登錄頁(yè)面,同時(shí)動(dòng)態(tài)生成一個(gè)Session Id,當(dāng)用戶輸入用戶名密碼,請(qǐng)求登錄時(shí),該Session Id同時(shí)被發(fā)送到服務(wù)器端,如果該Session Id在當(dāng)前會(huì)話中有效,那么返回登錄成功的頁(yè)面,如果不正確則登錄失?。辉趌oadrunner第一次錄制過(guò)程中會(huì)把這個(gè)值記錄了下來(lái),但回放時(shí),客戶端發(fā)出同樣的請(qǐng)求,而服務(wù)器端再一次動(dòng)態(tài)的生成了新的Session Id,與Loadrunner中錄制的Session Id不匹配,此時(shí)客戶端發(fā)出的請(qǐng)求就會(huì)失敗,為了獲得這個(gè)動(dòng)態(tài)的Session Id就用到了關(guān)聯(lián)。
    三、關(guān)聯(lián)的使用:
    LR中對(duì)參數(shù)關(guān)聯(lián)分兩種:
      1、自動(dòng)關(guān)聯(lián),比如在錄制好后的腳本中,按CTRL+F8,掃描關(guān)聯(lián),將掃描出來(lái)的內(nèi)容關(guān)聯(lián)即可;如果LR找不到關(guān)聯(lián)時(shí),就需要手動(dòng)進(jìn)行關(guān)聯(lián)。
      2、手工關(guān)聯(lián)函數(shù)web_reg_save_param,運(yùn)行腳本時(shí),web_reg_save_param 函數(shù)將掃描所訪問(wèn)的后續(xù) HTML 頁(yè)。如果指定左邊界和右邊界,將搜索這些邊界之間的文本。將匹配的內(nèi)容保存在web_reg_save_param中定義的參數(shù)中。
    實(shí)現(xiàn)過(guò)程如下:
    web_reg_save_param("outFlightVal",
    "LB=outboundFlight value=", "RB= checked >", LAST );
    web_submit_form("reservations.pl",
    "Snapshot=t4.inf",
    ITEMDATA,
    "Name=depart", "Value=London", ENDITEM,
    "Name=departDate", "Value=11/20/2003", ENDITEM,
    "Name=arrive", "Value=New York", ENDITEM,
    "Name=returnDate", "Value=11/21/2003", ENDITEM,
    "Name=numPassengers", "Value=1", ENDITEM,
    "Name=roundtrip", "Value=<OFF>", ENDITEM,
    "Name=seatPref", "Value=None", ENDITEM,
    "Name=seatType", "Value=Coach", ENDITEM,
    "Name=findFlights.x", "Value=83", ENDITEM,
    "Name=findFlights.y", "Value=16", ENDITEM,
    LAST );
    web_submit_form("reservations.pl_2",
    "Snapshot=t5.inf",
    ITEMDATA,
    "Name=outboundFlight", "Value={outFlightVal}", ENDITEM,
    "Name=reserveFlights.x", "Value=92", ENDITEM,
    "Name=reserveFlights.y", "Value=10", ENDITEM,
    LAST );
    定義了搜索范圍LB左邊界值和RB右邊界值,將匹配的內(nèi)容存放在outFlightVal中,在web_submit_form表單中進(jìn)行引用。
    實(shí)例說(shuō)明:
    以下為服務(wù)響應(yīng)表單,對(duì)返回的動(dòng)態(tài)值orderId進(jìn)行關(guān)聯(lián):
      <input type="hidden" id="orderId" name="orderId"
      value="f28958249e141e62312d855ce73252d3"/>
    實(shí)現(xiàn)如下:
      web_reg_save_param("orderId",
      "LB=name="orderId" value="",
      "RB="",
      LAST);
    在服務(wù)響應(yīng)表單中找左邊界是:name="orderId" value="
    右邊界是:"
    將匹配到的結(jié)果賦給orderId。
    之后就可以在后續(xù)流程中盡情的調(diào)用關(guān)聯(lián)值了。
    另外:web_reg_save_param要放在web_submit_form等提交表單函數(shù)之前。
    web_reg_save_param必須在獲取返回值的操作前面注冊(cè),在獲取返回值的操作后面使用。
    保存參數(shù)最大不能超過(guò)256字節(jié),如果超過(guò)256字節(jié)請(qǐng)使用int web_set_max_html_param_len(const char *length )函數(shù)擴(kuò)大參數(shù)保存范圍。
    例如:web_set_max_html_param_len ("1024"); //擴(kuò)大參數(shù)最大保存范圍為1024字節(jié)。

    本文轉(zhuǎn)自(spasvo.com

    點(diǎn)擊下載最新版LoadRunner試用

    >>查看loadrunner和更多性能測(cè)試相關(guān)教程、咨詢、資訊!<<

    掃碼咨詢


    添加微信 立即咨詢

    電話咨詢

    客服熱線
    023-68661681

    TOP
    三级成人熟女影院,欧美午夜成人精品视频,亚洲国产成人乱色在线观看,色中色成人论坛 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();