zoukankan      html  css  js  c++  java
  • 使用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;
    }
  • 相关阅读:
    asp.net性能的技巧
    『笔记』数学数论(二)
    『笔记』数学数论(五)
    『笔记』数学数论(一)
    『笔记』数学数论(四)
    『笔记』分块与块状数组
    『笔记』矩阵
    『题解』CF28A Bender Problem
    『笔记』数学数论(七)
    『笔记』数学数论(三)
  • 原文地址:https://www.cnblogs.com/ttssrs/p/6163889.html
Copyright © 2011-2022 走看看