51Testing软件测试论坛

标题: 下载文件总出错,大家帮帮忙 [打印本页]

作者: casson    时间: 2010-8-17 13:47
标题: 下载文件总出错,大家帮帮忙
lr9.5, IE6.0
下载文件,脚本如下:
Action()
{   
    int flen;        //定义一个整型变量保存获得文件的大小
    long filedes;    //保存文件句柄
    char file[256]="\0";  //保存文件路径及文件名
    char chNumber ;
    web_set_max_html_param_len("99999999");//设置页面接收最大的字节数,该设置应大于下载文件的大小

    web_concurrent_start(NULL);

    web_reg_save_param("filecontent",
     "LB=",
     "RB=",
     "Search=BODY",
      LAST);

    web_url("2.html",
                "URL=http://124.205.62.48/aimi/t.apk",
                "Resource=0",
                "RecCReferer=",
                "Snapshot=",
                LAST);

    web_concurrent_end(NULL);

      /*   chNumber=lr_eval_string("{random}");  //生成随机数
         lr_log_message("随机数是:%s",chNumber);

            strcat(file,"D:\\downtest");
            strcat(file,chNumber);
            strcat(file,".zip");
*/

       strcat(file,"D:\\result\\");    //将"D:\\"这个路径保存到file中
       strcat(file,lr_eval_string("{filename}"));//将获得的文件名拼接在file这个变量字符串之后

    flen = web_get_int_property(HTTP_INFO_DOWNLOAD_SIZE); //获得文件大小

    if(flen > 0)
     {
     if((filedes = fopen(file, "wb")) == NULL)
     {
      lr_output_message("Open File Failed!", lr_eval_string("{filecontent}"));
      return -1;
     }
     fwrite( lr_eval_string("{filecontent}"),flen,1,filedes );
     fclose( filedes );
     }
        return 0;
}
即使运行20个Vgen,也总是报错,
Action.c(25): Error: C interpreter run time error: Action.c (25):  Error -- memory violation : Exception ACCESS_VIOLATION received.


为什么啊??

[ 本帖最后由 casson 于 2010-8-17 14:55 编辑 ]
作者: casson    时间: 2010-8-17 14:06
标题: 怎么办啊。求助中
怎么办啊。求助中
作者: MrPerformance    时间: 2010-8-17 14:09
保存的时候应该保存到不同的文件,把随机数用上
加上试试:
         chNumber=lr_eval_string("{Random}");  //生成随机数
         lr_log_message("随机数是:%s",chNumber);

            strcat(file,"D:\\downtest");
            strcat(file,chNumber);
            strcat(file,".zip");
作者: casson    时间: 2010-8-17 14:12
标题: 这个可以参数化解决,问题是为什么报错啊
这个可以参数化解决,问题是为什么报错啊
作者: MrPerformance    时间: 2010-8-17 14:20
这个错误可能是数组越界。我遇到的就是因为设置的参数长度不够报的这个错误,调整数据大小后解决了。
哈哈   等高手吧
作者: casson    时间: 2010-8-17 14:37
标题: 好像最多100个,怎么设置成多于100个。另外,我参数化100个可是下载下来的只有69个
说是虚拟用户和参数名称不符,我不知道哪里不符了。参数我给了1000个

[ 本帖最后由 casson 于 2010-8-18 10:27 编辑 ]
作者: qingyouzi777    时间: 2010-9-2 11:45
可能是你的这个参数“99999999”设置的太大了,
web_set_max_html_param_len("99999999");//设置页面接收最大的字节数,该设置应大于下载文件的大小

把这个函数中的值改小一些,试试。
作者: PrefTest    时间: 2010-9-2 16:59
原帖由 qingyouzi777 于 2010-9-2 11:45 发表
可能是你的这个参数“99999999”设置的太大了,
web_set_max_html_param_len("99999999");//设置页面接收最大的字节数,该设置应大于下载文件的大小

把这个函数中的值改小一些,试试。



应该不是这个问题

length  The maximum length of any HTML string that can be retrieved. Do not enter a length greater than the value of an unsigned integer (4294967295).
作者: zhangxinnow    时间: 2010-9-2 17:13
多个进程访问了同一个内存资源,这个貌似没办法。
作者: zhangxinnow    时间: 2010-9-2 17:16
另:参数最多就100个,你那个69可能是多次调用了,设置参数调用方法,具体方法:略。




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