切回到Script模式看看脚本发生了什么变化,首先脚本中增加了以下内容:
// [WCSPARAM WCSParam_Diff1 44 98852.6810044552fAitHDtpHHQVzzzHDAfAiptAizHf] Parameter {WCSParam_Diff1} created by Correlation Studio web_reg_save_param("WCSParam_Diff1", "LB=userSession value=", "RB=>", "Ord=1", "RelFrameId=1.2.1", "Search=Body", "IgnoreRedirections=Yes", LAST); |
这里多了一个关联函数,而关联出来的内容被保存到一个叫做WCSParam_Diff1的参数中去。再看web_submit_data()函数:
web_submit_data("login.pl", "Action=http://127.0.0.1:1080/WebTours/login.pl", "Method=POST", "TargetFrame=body", "RecContentType=text/html", "Referer=http://127.0.0.1:1080/WebTours/nav.pl?in=home", "Snapshot=t2.inf", "Mode=HTML", ITEMDATA, "Name=userSession", "Value={WCSParam_Diff1}", ENDITEM, "Name=username", "Value=admin", ENDITEM, "Name=password", "Value=admin", ENDITEM, "Name=JSFormSubmit", "Value=off", ENDITEM, "Name=login.x", "Value=0", ENDITEM, "Name=login.y", "Value=0", ENDITEM, LAST); |
提交给服务器的userSession值,已经变成了前面关联获取的{WCSParam_Diff1}参数。再次回放脚本,一切正确,进入系统。
自动关联是通过录制和回放时的服务器返回值比较来确定需要关联的内容,然后帮助生成对应的关联函数,常用在非常标准的动态数据处理中,例如sessionid。在大多数情况下脚本无法正常回放都可以通过自动扫描的方法来生成关联,解决动态数据的问题。