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/