smilesun666 发表于 2013-8-5 09:52:42

08/2/2013这样的格式如何做参数化?

本帖最后由 smilesun666 于 2013-8-6 11:08 编辑



就是说服务器要求的格式为08/2/2013和通过参数化 Date/time方式的格式为08/02/2013,稍有差异的原因。。那应该用什么方法做这个日期的参数化呢?主要就是这个日期一位数时前面不显示0的显示的问题。。



用loadrunner 自带网站webtour录制的脚本,做了sessionid关联了的。但是在运行到findflight页面的下一个确认页面时打开的页面中只有框架没有内容,发送脚本如下:
web_submit_data("reservations.pl",
                "Action=http://127.0.0.1:1080/WebTours/reservations.pl",
                "Method=POST",
                "TargetFrame=",
                "RecContentType=text/html",
                "Referer=http://127.0.0.1:1080/WebTours/reservations.pl?page=welcome",
                "Snapshot=t4.inf",
                "Mode=HTML",
                ITEMDATA,
                "Name=advanceDiscount", "Value=0", ENDITEM,
                "Name=depart", "Value=Denver", ENDITEM,
                "Name=departDate", "Value={deparDate}", ENDITEM,
                "Name=arrive", "Value=London", ENDITEM,
                "Name=returnDate", "Value={returnDate}", ENDITEM,
                "Name=numPassengers", "Value={passengerNum}", ENDITEM,
                "Name=seatPref", "Value={seatPref}", ENDITEM,
                "Name=seatType", "Value={seatType}", ENDITEM,
                "Name=.cgifields", "Value=roundtrip", ENDITEM,
                "Name=.cgifields", "Value=seatType", ENDITEM,
                "Name=.cgifields", "Value=seatPref", ENDITEM,
                "Name=findFlights.x", "Value=48", ENDITEM,
                "Name=findFlights.y", "Value=8", ENDITEM,
                LAST);
没有看到有发送cookie的地方,但通过查看view both recording and snapshot 发现client request中还有发送cookie没有录制上的。Cookie: MSO=SID&1375605240; MTUserInfo=hash&17&firstName&&expDate&20169%0A&creditCard&1234567890981234&address1&&lastName&%0A&address2&&username&zhaoxq1
其中,MSO=SID的值是有变化的。于是在最初的导航到webtour页面时通过web_reg_save_param("cookies","LB=Set-cookie:","RB=;","Search=Headers","Ord=2",LAST);获得了cookie值准备作关联;可是在前面那个脚本中是没有发送这个cookie的,我在哪里把这个 cookie参数用上。如何发送??
还请赐教

smilesun666 发表于 2013-8-5 15:52:16

回复 1# smilesun666

刚才再次检查了下,发现页面执行失败的原因是:
.应该是传递的参数对应的字符格式09/02/13和原格式09/2/2013不一致造成的;
就是说服务器要求的格式和通过参数化 Date/time方式的格式稍有差异的原因。。那应该用什么方法转化日期格式呢?

smilesun666 发表于 2013-8-7 09:06:17

自己来解答吧!
char *p=lr_eval_string("{datetime}");
        //char *p="08/09/2013";
char test;
char strtemp1;
char strtemp2;
char strtemp3;
char str;
int i,k;
//lr_save_string(lr_eval_string("{datetime}"),p);
//strcpy(test,lr_eval_string("{datetime}"));
lr_output_message("p=%s",p);

strncpy(strtemp1,p,2);
lr_output_message("strtemp1=%s",strtemp1);

for (i=0;i<3;i++) {
          p++;
}

strncpy(strtemp2,p,2);
lr_output_message("strtemp2=%s",strtemp2);


if ((atoi(strtemp2)-10)<0) {

p++;

strcpy(strtemp2,"0\0");
strncpy(strtemp2,p,1);
lr_output_message("strtemp2=%s",strtemp2);


for (i=0;i<2;i++) {
          p++;
}
}
else{
          for (i=0;i<3;i++) {
          p++;
                                                }

}
                                                               
strncpy(strtemp3,p,4);
lr_output_message("strtemp1=%s",strtemp3);

strcat(str,strtemp1);
strcat(str,"/");
strcat(str,strtemp2);
strcat(str,"/");
strcat(str,strtemp3);
lr_output_message("str=%s",str);
lr_save_string(str,"Param");
lr_output_message("Param=%s",lr_eval_string("{Param}"));

用这些语句来完成格式转化,也可写在函数里来调用;

云层 发表于 2013-8-7 09:11:36

我只能说楼上的做法貌似太复杂了,LR自己的参数化是可以设置格式的

smilesun666 发表于 2013-8-13 10:33:04

是啊。。但,我真没有看到能把日期02变成2的方法;

地壳 发表于 2013-8-13 10:45:55

我只能说楼上的做法貌似太复杂了,LR自己的参数化是可以设置格式的
云层 发表于 2013-8-7 09:11 http://bbs.51testing.com/images/common/back.gif


    听云层老师的没错!
页: [1]
查看完整版本: 08/2/2013这样的格式如何做参数化?