51Testing软件测试论坛

标题: 关于回放Loadrunner录制的附件下载脚本时,保存附件大小的问题 [打印本页]

作者: UnAngel_test    时间: 2010-10-27 22:50
标题: 关于回放Loadrunner录制的附件下载脚本时,保存附件大小的问题
本帖最后由 UnAngel_test 于 2012-5-8 18:29 编辑

=================================================================================================
现在又蹦出个新的问题,仍然是LR录制下载的时候:
功能描述:新建一条记录,进入这条记录的附件列表,上传好一个附件, 在录制的时候就是进入这条记录,进入附件列表,下载这条附件
相关操作:进入这条记录,将这条附件删除, 回放脚本下载脚本成功,保存的文件大小跟原附件一样大小,且从LR页面发现从服务器返回获取到的附件信息仍为原附件的信息
==================================================================================================
请高手帮下忙,今天捣鼓一天了还没解决

附件下载-保存脚本如下:
1        web_set_max_html_param_len("20000");
2        //获取响应的全部内容,作为文件内容保存
3        web_reg_save_param("fcontent", "LB=", "RB=", "SEARCH=BODY", LAST);
4            web_url("BaseAttachManageDownload.jsp",
5        "URL=http://192.168.100.88:8010/cmcceoms/UltraWF/manageprocess/Base6     AttachManageDownload.jsp?attID=000000000060942",
7        "Resource=0",
8        "RecContentType=text/html",
9        "Referer=http://192.168.100.88:8010/cmcceoms/UltraWF/manageprocess/B10   aseAttachManageDownload.jsp?attID=000000000060942",
11        "Snapshot=t16.inf",
12        "Mode=HTML",
13        EXTRARES,
14        "Url=BaseAttachManageDownload.jsp?attID=000000000060942",
15        "Referer=http://192.168.100.88:8010/cmcceoms/UltraWF/manageprocess/B16    aseAttachManageDownload.jsp?attID=000000000060942", ENDITEM,
17                LAST);

        //获取响应中的文件长度
18        flen = web_get_int_property(HTTP_INFO_DOWNLOAD_SIZE);
19        chNumber=lr_eval_string("{NewParam}");  //生成随机数
20        if(flen >0)        
21        {

22        strcpy(wxdong,"D:\\test");   
23        strcat(wxdong,chNumber);
24        strcat(wxdong,".zip");
               
        //以写方式打开文件
25        if((filedes = fopen(wxdong, "wb+")) == NULL)
26                {
27                lr_output_message("Open File Failed!");
28                return -1;
29                }

                 // strcat(filedes,"D:\\test0");
          //strcat(filedes,chNumber);
         // strcat(filedes,".rar");
                //写入文件内容
30        fwrite(lr_eval_string("{NewParam}"), flen, 1, filedes);
                //关闭文件
31                fclose(filedes);

1)环境实际情况:B/S架构系统,脚本使用url/http方式录制,IE6/7都尝试过,附件列表中只有一个附件:a.rar,附件大小为2.5M

2)想要实现:回放脚本的时候 ,在脚本22行所说的路径下:D盘根目录下保存一个*.zip文件,大小为2.5M(当然这个压缩变小了,暂时先忽略)

3)实际出现:回放脚本之后,在脚本22行所说的路径下:D盘根目录下保存了一个*.zip文件,大小为0KB

4)在上述情况之后,将脚本中20行改为“if(flen > 3000000)”,在D盘根目录下不会生成任何zip文件;当脚本中20行改为“if(flen > 2500000),在D盘根目录下生成了*.zip文件,且大小仍为0KB

            经过4)的尝试,认为附件已经下载下来,但是在写入且保存的时候,未成功保存。
   请高手指点下!!!
================================================================
脚本不做其他修改, 将30行的改为 fwrite(lr_eval_string("{fcontent}"), flen, 1, filedes);  就能保存成功了
作者: UnAngel_test    时间: 2010-10-28 09:14
没人会吗
作者: skyzhu    时间: 2010-10-28 09:59
wxdong 是什么东西

内容 fcontent 去哪里了?
作者: UnAngel_test    时间: 2010-10-28 10:16
代码前面已经定义了wxdong,
           int flen;
        long filedes;
        char*  chNumber;  
        char  wxdong[100];  
就是不知道fcontent的内容去哪里了
作者: UnAngel_test    时间: 2010-10-28 12:05
大手们,不能沉入海底呀
作者: xinqidian123    时间: 2010-10-28 13:36
关注。。。。。。
作者: xinqidian123    时间: 2010-10-28 13:38
你的下载方式是什么样的?是使用下载工具。。迅雷什么的。。
还是目标另存为啊?
作者: UnAngel_test    时间: 2010-10-28 15:58
IE下载,  目标另存为
作者: skyzhu    时间: 2010-10-28 16:05
30        fwrite(lr_eval_string("{fcontent}"), flen, 1, filedes);
作者: UnAngel_test    时间: 2010-10-28 17:39
本帖最后由 UnAngel_test 于 2010-10-28 17:49 编辑

回复 9# skyzhu


       改成这样还是一样的效果
作者: xinqidian123    时间: 2010-10-29 11:02
web_reg_save_param("fcontent", "LB=", "RB=", "SEARCH=BODY", LAST);
这句是干什么用的啊?没有看见关联的对象啊 ?
作者: xinqidian123    时间: 2010-10-29 16:51
22        strcpy(wxdong,"D:\\test");   
23        strcat(wxdong,chNumber);
24        strcat(wxdong,".zip");
               
        //以写方式打开文件
25        if((filedes = fopen(wxdong, "wb+")) == NULL)


在24和25之间是不能直接这样使用的。。
在24和25之间添加: lr_save_string(wxdong,"num");
25行改为:
if((filedes = fopen(lr_eval_string("{num}"), "wb")) == NULL)
30行改为:
     fwrite(lr_eval_string("{fcontent}"), flen, 1, filedes);

试试行不行
作者: chinafree    时间: 2011-6-28 15:46
本帖最后由 chinafree 于 2011-6-30 13:10 编辑

网上的那个脚本有问题,我也出现你说的问题。我改了下脚本,这个100%成功,我都测试了

下载成功,文件大小正确,文件也是随机的,不会重复.

Action()
{

    long  create;    //创建文件
    int s_file_size,rNum; //文件大小
    long s_file_data; //响应数据内容大小
    char file_path[1024],filename[32];//拼凑文件路径

    rNum = rand();

     itoa(rNum, filename, 10);     
     strcpy(file_path, "d:\\down\\aa_");   
     strcat(file_path, filename);
     strcat(file_path, ".rar");

     web_add_cookie("HS_SUPPORT_LANG=en; DOMAIN=support-ts.huaweisymantec.com");

    web_add_cookie("HS_SUPPORT_WEBSITEID=3; DOMAIN=support-ts.huaweisymantec.com");

    web_set_max_html_param_len("1024000");

    web_reg_save_param("s_share", "LB=", "RB=", "SEARCH=BODY", LAST);

    web_url("163",
        "URL=http://sp-download.huaweisymantec.com/dows.aspx?File_ID=3098&FileType_ID=3&sso=false",
        "Resource=0",
        "RecContentType=text/html",
        "Referer=http://support-ts.huaweisymantec.com/support/SoftFile/SoftFile.do/GetSoftFileDetail/163?sso=false",
        "Snapshot=t1.inf",
        "Mode=HTML",
        LAST);

     s_file_size = web_get_int_property(HTTP_INFO_DOWNLOAD_SIZE);

     create=s_file_data = fopen(file_path, "wb");  //创建文件

  if(s_file_size > 0)
  {
  if(create == NULL)
   {
   lr_output_message("文件操作失败!");
   return -1;
   }
  
   fwrite(lr_eval_string("{s_share}"), s_file_size, 1, s_file_data);    //写入文件内容


   fclose(s_file_data);   //关闭文件
  }
    return 0;
}
作者: UnAngel_test    时间: 2012-5-8 18:30
自己顶一个




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