51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

测试开发精英班,通向高级软件测试工程师论坛测试积点免费获取渠道攻略20+企业级实战项目就在这里!横扫BAT,Python全栈测试开发技能大全
【114期】:谈数据库测试&测试开发相互间的关系!中国软件测试行业现状调查报告新鲜出炉! 【杂志】做测试行业不偏科的尖子生! 【活动】为视频UP主打CALL,互动领福利!
查看: 1936|回复: 5

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

[复制链接]
  • TA的每日心情
    奋斗
    2015-8-4 09:44
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    发表于 2013-8-5 09:52:42 | 显示全部楼层 |阅读模式
    本帖最后由 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参数用上。如何发送??
    还请赐教
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    2015-8-4 09:44
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

     楼主| 发表于 2013-8-5 15:52:16 | 显示全部楼层
    回复 1# smilesun666

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

    使用道具 举报

  • TA的每日心情
    奋斗
    2015-8-4 09:44
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

     楼主| 发表于 2013-8-7 09:06:17 | 显示全部楼层
    自己来解答吧!
    char *p=lr_eval_string("{datetime}");
            //char *p="08/09/2013";
    char test[200];
    char strtemp1[200];
    char strtemp2[200];
    char strtemp3[200];
    char str[200];
    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自己的参数化是可以设置格式的
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2015-8-4 09:44
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

     楼主| 发表于 2013-8-13 10:33:04 | 显示全部楼层
    是啊。。但,我真没有看到能把日期02变成2的方法;
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    擦汗
    2017-10-27 14:21
  • 签到天数: 306 天

    连续签到: 1 天

    [LV.8]测试军长

    发表于 2013-8-13 10:45:55 | 显示全部楼层
    我只能说楼上的做法貌似太复杂了,LR自己的参数化是可以设置格式的
    云层 发表于 2013-8-7 09:11



        听云层老师的没错!
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /2 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2020-8-13 08:04 , Processed in 0.065423 second(s), 28 queries .

    Powered by Discuz! X3.2

    © 2001-2020 Comsenz Inc.

    快速回复 返回顶部 返回列表