51Testing软件测试论坛

标题: lr脚本问题求助! [打印本页]

作者: zhenhaiou    时间: 2004-11-3 13:05
标题: lr脚本问题求助!
录制了一段web页面的脚本,其中有个地方有sessionid,每次都是不一样得,随机变化的,故采用动态关联。
脚本如下:



#include "as_web.h"


Action1()
{
web_url("epare",
"URL=http://flight.airchina.com.cn/epare",
"Resource=0",
"RecContentType=text/html",
"Referer=",
"Snapshot=t1.inf",
"Mode=HTML",
LAST);

web_image("login.gif;JSESSIONID_epare=BHOOIZopATihFKbwva79G1Oy5UBLKQkGqLYzROhPQ9A8g7bplSkc!-1584612414",
"Src=/epare/framework/skins/blueinfinity/images/login.gif;JSESSIONID_epare=BHOOIZopATihFKbwva79G1Oy5UBLKQkGqLYzROhPQ9A8g7bplSkc!-1584612414",
"Snapshot=t2.inf",
LAST);

return 0;
}


加入函数web_reg_save_param
其中:
LB=JSESSIONID_epare=;
RB=;
这样会出错,不知道这两个参数应该怎么取值。
作者: wghong    时间: 2004-11-3 15:28
关注!比如这么一句脚本,
"Name=lt", "Value=LT-575-RCwdfPd0YZgKfxPndFUA", ENDITEM,
关联后变成:
        web_reg_save_param( "WCSParam_Diff1", "LB= value=\"", "RB=\"", "Ord=2", "Search=Body", "RelFrameId=1", LAST );
.
.
.
.
        "Name=lt", "Value={WCSParam_Diff1}", ENDITEM,
RB和LB后面怎么会出现下划线和2个双引号?删掉一个双引号和下划线,编译没有问题,但回放就有问题了:Error -27282: Ordinal must be 1 when the left and/or right boundaries are empty          [MsgId: MERR-27282]
这是为什么?

[ Last edited by wghong on 2004-11-3 at 15:48 ]
作者: wghong    时间: 2004-11-3 15:52
在关联的高级设置里面\和“都是分隔符。楼主加上\"后应该不会出错了吧,但有人能解释一下为什么吗?
作者: zhenhaiou    时间: 2004-11-3 20:04
奇怪了,关联设置成功了,在generator中run能通过,不会有错,
但是使用controller添加虚拟用户后,还是会出现错误,
跟开始没有设置关联时相同的错误。
作者: suliang    时间: 2004-11-4 14:11
你试试这样看看,lb=value=,rb=\"".
Value=  LT-575-RCwdfPd0YZgKfxPndFUA     "

web_reg_save_param( "WCSParam_Diff1", "LB= value=", "RB=\"", "Ord=2", "Search=Body", "RelFrameId=1", LAST );

如果rb为空的话,默认是到这行结束。

[ Last edited by suliang on 2004-11-4 at 14:20 ]
作者: wghong    时间: 2004-11-5 11:00
明白楼主开始的错误了,在html脚本里面 =号的赋值语句都是当作字符处理,一般都是有引号的,也就是:a=”.....“。虽然在编写程序的时候也可以不把引号加上。
LB= value=\",\是转义字符,表示左边界为 value=“          ,同时右边界也必须有引号,正如楼上所说的,rb为空的话,是表示到达这行的结束。。另外,我想提问一点关于关联的运行机制的问题,比如下面的程序:
web_reg_save_param( "WCSParam_Diff1", "LB= value=\"", "RB=\"", "Ord=2", "Search=Body", "RelFrameId=1", LAST );

web_reg_save_param( "WCSParam_Diff2", "LB=ticket=", "RB=\"", "Ord=2", "Search=Body", "RelFrameId=1", LAST );
......
"Name=lt", "Value={WCSParam_Diff1}", ENDITEM,
.........
"URL=http://192.168.0.3/docexchange/webforms/index.jsp?ticket={WCSParam_Diff2}",
由于在编写程序时,由于value=的赋值语句可以不在=号后面加引号,所以可以改为:
web_reg_save_param( "WCSParam_Diff1", "LB= value=", "RB=\"", "Ord=2", "Search=Body", "RelFrameId=1", LAST );左边界是没有引号的。这样编译没有错误,但是回放时却提示:
Error -26377: No match found for the requested parameter "WCSParam_Diff2". Check whether the requested boundaries exist in the response data. Also, if the data you want to save exceeds 256 bytes, use web_set_max_html_param_len to increase the parameter size          。
修改了WCSParam_Diff1,却引起了WCSParam_Diff2的错误。这让我想清楚关联内在规则:是不是WCSParam_Diff1存下了一定的值,却用在了WCSParam_Diff2上?




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2