51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2716|回复: 9
打印 上一主题 下一主题

[原创] 下载文件总出错,大家帮帮忙

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2010-8-17 13:47:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
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 编辑 ]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
 楼主| 发表于 2010-8-17 14:06:47 | 只看该作者

怎么办啊。求助中

怎么办啊。求助中
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2010-8-17 14:09:35 | 只看该作者
保存的时候应该保存到不同的文件,把随机数用上
加上试试:
         chNumber=lr_eval_string("{Random}");  //生成随机数
         lr_log_message("随机数是:%s",chNumber);

            strcat(file,"D:\\downtest");
            strcat(file,chNumber);
            strcat(file,".zip");
回复 支持 反对

使用道具 举报

该用户从未签到

4#
 楼主| 发表于 2010-8-17 14:12:10 | 只看该作者

这个可以参数化解决,问题是为什么报错啊

这个可以参数化解决,问题是为什么报错啊
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2010-8-17 14:20:51 | 只看该作者
这个错误可能是数组越界。我遇到的就是因为设置的参数长度不够报的这个错误,调整数据大小后解决了。
哈哈   等高手吧
回复 支持 反对

使用道具 举报

该用户从未签到

6#
 楼主| 发表于 2010-8-17 14:37:39 | 只看该作者

好像最多100个,怎么设置成多于100个。另外,我参数化100个可是下载下来的只有69个

说是虚拟用户和参数名称不符,我不知道哪里不符了。参数我给了1000个

[ 本帖最后由 casson 于 2010-8-18 10:27 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

7#
发表于 2010-9-2 11:45:39 | 只看该作者
可能是你的这个参数“99999999”设置的太大了,
web_set_max_html_param_len("99999999");//设置页面接收最大的字节数,该设置应大于下载文件的大小

把这个函数中的值改小一些,试试。
回复 支持 反对

使用道具 举报

该用户从未签到

8#
发表于 2010-9-2 16:59:05 | 只看该作者
原帖由 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).
回复 支持 反对

使用道具 举报

该用户从未签到

9#
发表于 2010-9-2 17:13:54 | 只看该作者
多个进程访问了同一个内存资源,这个貌似没办法。
回复 支持 反对

使用道具 举报

该用户从未签到

10#
发表于 2010-9-2 17:16:20 | 只看该作者
另:参数最多就100个,你那个69可能是多次调用了,设置参数调用方法,具体方法:略。
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-11-17 16:48 , Processed in 0.071254 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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