LoadRunner手工關聯
web_reg_save_param取服務器返回的值,關聯服務器需要校驗的值,不一定第動態的,有可能不變,根據服務器的算法決定
關聯需要注意的項:找到服務器的動態的值;找到關聯值得左右邊界;關聯所放置的位置。
有時候需要使用的數據是服務器動態產生的,但是錄制的時候是固定的,此時也也可以用關聯來處理。比如新增用例時TCID是服務器動態產生的,此時需要使用關聯來獲取這個TCID的值。具體步驟如下:
1、找到需要關聯的地方,就是會使服務器產生動態數據的這個提交。設置手工關聯必須在這個提交之前,這個位置必須設置正確,否則無法獲取關聯。比如下面的代碼:
web_set_max_html_param_len ("9999"); --函數可以自定義關聯返回值存放的參數的最大長度,默認是1024,如果不夠需要增加
web_reg_save_param("tcid","LB=input name=\"yl_tcid\" type=\"text\" value=\"","RB=\"",LAST); --設置關聯,參數一為變量名,參數二為左邊界,參數三為右邊界
web_submit_data("TB_CeShiYLGL.aspx_2", --以下為一個客戶端提交函數,上面的關聯函數就是為了獲取該提交后,服務器反饋的值。 "Action=http://192.168.3.99/tbasetest/CeShiYL/TB_CeShiYLGL.aspx?bz=1&GONGNENGID=MTE*", "Method=POST", "RecContentType=text/html", "Referer=http://192.168.3.99/tbasetest/CeShiYL/TB_CeShiYLGL.aspx?bz=1&GONGNENGID=MTE*", "Snapshot=t19.inf", "Mode=HTML", ITEMDATA, "Name=__EVENTTARGET", "Value=LB_Add", ENDITEM, "Name=__EVENTARGUMENT", "Value=", ENDITEM, "Name=__LASTFOCUS", "Value=", ENDITEM, "Name=__VIEWSTATE", "Value=/", ENDITEM, "Name=hdnYongLiGL", "Value=", ENDITEM, "Name=hdnDelRows", "Value=", ENDITEM, "Name=yl_tcid", "Value=1725", ENDITEM, "Name=yl_xm", "Value=1", ENDITEM, "Name=yl_xt", "Value=BAGL-1", ENDITEM, "Name=yxj", "Value=yl_gj", ENDITEM, "Name=yl_lyxq", "Value=", ENDITEM, "Name=yl_qzyl", "Value=", ENDITEM, "Name=yl_cjms", "Value=", ENDITEM, "Name=YuQiJG", "Value=%3CDisplayLayout%3E%3CStateChanges%3E%3C/StateChanges%3E%3C/DisplayLayout%3E", ENDITEM, "Name=yl_yyjgid", "Value=", ENDITEM, "Name=yl_yyjgidOrign", "Value=", ENDITEM, "Name=ylkhid", "Value=", ENDITEM, "Name=QuXiaoBZ", "Value=1", ENDITEM, "Name=_IG_CSS_LINKS_", "Value=", ENDITEM, LAST); lr_output_message("Value TCID = %s", lr_eval_string("{tcid}")); --輸出關聯的變量值 |
此時肯定會有一個疑問,我們如何獲取左右邊界的值。其實也比較簡單,常見的方法見下圖
注意點:
1、設置左右邊界時,遇到的引號必須加轉義符號
2、自定義關聯返回值存放的參數的最大長度
3、注意關聯函數的位置
posted on 2014-05-04 13:00 順其自然EVO 閱讀(181) 評論(0) 編輯 收藏 所屬分類: 測試學習專欄