使用LoadRunner脚本并发下载文件,出现19890错误

需求:10个客户并发下载同一份zip文件。
执行的时候,8个Fail了,只下载了两份zip,且无论执行多少遍,都是这样。

错误信息如下:
message code:-19890
C interpreter run time error: memory violation:exception access_violation received

网上各种解决办法都试过,无效,通过排除法,对脚本一点点注释、执行,最终发现导致本错误的根本原因是:

 web_set_max_html_param_len("10240000");这一句中指定的长度太大了,而我要下载的文件只有4k,改成4096000后,问题解决。

Action()
{
 int flen;
 longfiledes;

 char filename1[50];
 charfilename[50];
 charfilepath[50];
 char *fileSuffix;

 lr_save_datetime("%Y%m%d%H%M%S",DATE_NOW,"now"); 
 fileSuffix = lr_eval_string("{num}");
 sprintf(filename,"%s%d.rar",lr_eval_string("{now}"),fileSuffix);
 lr_save_string(filename,"filename1");
 strcpy(filepath,"D:\\test\\download\\");
 strcat(filepath,lr_eval_string("{filename1}"));
 lr_message("%s",filepath);

 web_set_max_html_param_len("10240000");
 web_reg_save_param("fcontent","LB=", "RB=", "SEARCH=BODY", LAST);
 
 lr_rendezvous("并发");
 lr_start_transaction("download");
 web_url("attachment.aspx",
  "URL=http://172.0.0.1:8081/package/2015wwerwt34w553qq.zip",
  "TargetFrame=","Resource=0",
  "RecContentType=application/zip",
  "Referer=",
  "Snapshot=t1.inf",
  "Mode=HTML",
        LAST);
lr_end_transaction("download",LR_AUTO);
 flen = web_get_int_property(HTTP_INFO_DOWNLOAD_SIZE);

 if(flen> 0) 
 {
  //以写方式打开文件
  if((filedes = fopen(filepath,"wb")) == NULL)
  {
   lr_output_message("Open File Failed!");
   return -1;
  }
  //写入文件内容
  fwrite(lr_eval_string("{fcontent}"),flen, 1, filedes);
  //关闭文件
  fclose(filedes);
 }

 return 0;
}

 

转载于:https://www.cnblogs.com/ttssrs/p/6163889.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值