1.关联的含义
关联(correlation):在脚本回放过程中,客户端发出请求,通过关联函数所定义的左右边界值(也就是关联规则),在服务器所响应的内容中查找,得到相应的值并保存到参数中,这种动态获得服务器响应内容的方法被称作关联。其实关联也属于一同特殊的参数化,只是与一般的参数化有些不同:一般的参数化的参数来源于一个文件、一个定义的table、通过sql写的一个结果集等,但关联所获得的参数是服务器响应请求所返回的一个符合条件的、动态的值。
2.什么时候需要做关联
当客户端的某个请求是随着服务器端的相应而动态变化的时候,我们就需要用到关联。
二。 关联函数的使用
1. 记住 所有的注册函数web_reg_find或是web_reg_save_param、web_reg_save_param_ex,都必须写在web请求之前!
2.关联函数web_reg_save_param
一个web_reg_save_param函数的例子:
web_reg_save_param ("sessionid",
"LB=Session_id:",
"RB=;",
"Search=Body",
LAST);
在这里我们只介绍几个常用参数的含义
语法:int web_reg_save_param(const char *ParamName, <list of Attributes>, LAST);
参数说明:
ParamName: 存放得到的动态内容的参数名称
list of Attributes: 其它属性,包括:Notfound, LB, RB, RelFrameID, Search, ORD, SaveOffset, Convert, SaveLen。属性值不分大小写
LB( Left Boundary ) : 返回信息的左边界字串。该属性必须有,并且区分大小写。
RB( Right Boundary ): 返回信息的右边界字串。该属性必须有,并且区分大小写。
Search : 返回信息的查找范围。可以是Headers,Body,Noresource,All(缺省)。
3.关联函数 web_reg_save_param_ex
一个例子:
web_reg_save_param_ex(
"ParamName=page_void",
"LB=<input type=\"hidden\" name=\"v_oid\" value=\"",
"RB=\">",
"NotFound=warning",
"Ordinal=1",
SEARCH_FILTERS,
"Scope=Body",
//"ContentType=text/html",
//"RequestUrl=http://secure3.xxx.com/rma/rmaadd.aspx?orderNumber={parmcode}",
LAST);
常用参数解释:
ParamName, 函数注册的参数名称, 这个名称可以被lr_eval_string("{page_void}") 取得;
LB,左边界,LB/IC 这样的用法 可以使比较忽略大小写
RB,右边界,RB/IC 这样的用法 可以使比较忽略大小写
NotFound=warning 找不到指定信息不会报错,
"Ordinal=1" 记录第一个找到的,如果为ALL的话,则只能统计数量了
SEARCH_FILTERS 未知
"Scope=Body", 查找范围
//"ContentType=text/html", 这个东西尽量别用... 从字面意义上说只查找html类型,但是会使你查找失败
RequestUrl 表示指定的请求(这个我感觉很好,因为一个操作,如点击一个按钮,可能有几个请求链接组成的,通过这个属性可以缩小范围)