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、注意关联函数的位置
最新内容请见作者的GitHub页:http://qaseven.github.io/