3.7.5 关联函数web_reg_save_param_ex详解
上面说了常见的3种关联应用的方式,可以看到所谓关联都是使用web_reg_save_ param_ex函数将服务器返回的内容进行收集过滤的过程,接着我们来仔细研究一下关联函数提供的选项。
首先介绍一个函数web_set_max_html_param_len,当关联出错的时候VuGen都会提示以下内容:
Action.c(20): Error -26377: No match found for the requested parameter "WCSParam2". Check whether the requested boundaries exist in the response data. Also, if the data you want to save exceeds 1024 bytes, use web_set_max_html_param_len to increase the parameter size [MsgId: MERR-26377] |
很多朋友看到这个错误就会头皮发麻,完全不知所措。这种错误99%都是由于关联的边界设置不合理导致没有关联到所需要的内容。系统提示使用web_set_max_html_ param_len函数的目的是提醒如果被关联内容超出了默认的1024字节就会导致存放数据溢出,就会产生参数值为空、关联失败的情况(做附件下载关联或者多项关联大数据返回的脚本就可能会遇到这个问题),但通常都不会关联到如此巨大的内容。
web_set_max_html_param_len函数可以自定义关联返回值存放的参数的最大长度。打开Insert/Add Step窗口,找到对应的web_set_max_html_param_len函数,如图3.124所示。
图3.124 添加web_set_max_html_param_len函数
设置最大长度为9999999,如图3.125所示。
图3.125 设置web_set_max_html_param_len函数长度
得到以下脚本:
web_set_max_html_param_len("9999999"); |
通过这个函数可以确保不会出现参数内容过长而无法存放的错误,不过这是以开销系统资源为代价的。
接着来看看web_reg_save_param_ex函数的选项,由于关联出来的内容存放在参数中,所以还是建议打开日志中的Parameter substitution选项,以方便调试跟踪。
打开Add Step添加步骤,选择web_reg_save_param_ex函数,打开关联函数设置窗口,如图3.126所示。
图3.126 web_reg_save_param_ex函数设置窗口
1.Parameter Name
此处设置存放参数的名称,关联出来的内容将会存放在该参数中。这里受到Ordinal选项的影响。
例如:
设置Parameter Name为temp,当对应的Ordinal选项是任意一个数字的时候,只会关联一个匹配的记录,关联值将会存放在temp这个参数中。当Ordinal是All的时候,关联成功后的值将会依次存放在“temp_数字”这样的参数数组中,并且还会添加一个temp_count的参数存放关联出来的记录条数。