51Testing软件测试论坛

标题: Loadrunner 文件上传memory violation : Exception ACCESS\_VIOL,求帮助 [打印本页]

作者: 可乐咖啡厅    时间: 2017-4-11 11:27
标题: Loadrunner 文件上传memory violation : Exception ACCESS\_VIOL,求帮助

  1. //------组成请求的body

  2.         char* body = (char*) malloc (10485760 * sizeof(char));
  3.         char *fenge="-----------------------------28490279842474\r\n";
  4.         long length=0;
  5.         char len[1024];
  6.         char filename[1024];
  7.         char *fname = (char*) malloc (4194404 * sizeof(char));
  8.         long bodylength=0;
  9.         char bodylen[1024];

  10.        
  11. //生成随机的文件名字
  12.         int s;
  13.         s=rand()%20000+1;
  14.         rand(  );
  15.         lr_save_int(s, "filename");
  16.         strcpy( fname,
  17.                 lr_eval_string("{filename}-") );
  18. //生成时间戳
  19.         lr_save_datetime("%Y%m%d-%H%M%S", DATE_NOW, "nowtime");
  20.         strcat( fname,
  21.                 lr_eval_string("{nowtime}") );
  22. //        lr_save_string(lr_eval_string("{nowtime}"),"filename");
  23.        

  24.         strcpy( body,fenge );
  25.         strcat( body,"Content-Disposition: form-data; name=\"parentId\"\r\n\r\n" );
  26.         strcat( body,lr_eval_string("{rootFolderId}") );
  27.         strcat( body,"\r\n" );
  28.         strcat( body,fenge );
  29.         strcat( body,"Content-Disposition: form-data; name=\"ondup\"\r\n\r\noverwrite\r\n" );
  30.         strcat( body,fenge );
  31.         strcat( body,"Content-Disposition: form-data; name=\"id\"\r\n\r\nWU_FILE_0\r\n" );
  32.         strcat( body,fenge );
  33. //        strcat(body,"Content-Disposition: form-data; name=\"name\"\r\n\r\n{filename}\r\n");
  34. //        strcat(body,fenge);
  35.         strcat( body,"Content-Disposition: form-data; name=\"type\"\r\n\r\napplication/octet-stream\r\n" );
  36.         strcat( body,fenge );
  37.         strcat( body,"Content-Disposition: form-data; name=\"size\"\r\n\r\n1024\r\n" );
  38.         strcat( body,fenge );
  39. //        strcat(body,"Content-Disposition: form-data; name=\"lastModifiedDate\"\r\n\r\nWed Apr 05 2017 16:43:55 GMT+0800\r\n");
  40. //        strcat(body,fenge);
  41.         strcat( body,"Content-Disposition: form-data; name=\"file\"; filename=\"" );
  42. //        strcat(body,lr_eval_string("{fname}"));
  43.         strcat( body,fname );
  44.         strcat( body,"\"\r\nContent-Type: application/octet-stream\r\n\r\n" );
  45.         strcat( body,lr_eval_string("{contentTemp}") );
  46.         strcat( body,"\r\n\r\n" );
  47.         strcat( body,"-----------------------------28490279842474--" );
  48.         lr_save_string( body,"requestbody" );
  49.         length=strlen(body);
  50. //        length=strlen( lr_eval_string("{requestbody}") );
  51.         lr_output_message("length is %d",length);
  52.         itoa( length,len,10 );
  53.         lr_save_string( len,"bodylength" );
  54.         free( body );
  55.         free(fname);
  56.         fname=NULL;
  57.         body=NULL;
  58. //------------------


  59. //模拟用户真实操作,每次操作完成后,休息3秒钟
  60.         lr_think_time(3);

  61. //设置检查点,检查返回的信息是否含有allParentid字符串。
  62.         web_reg_find("Fail=NotFound",
  63.                 "Search=Body",
  64.                 "SaveCount=1",
  65.                 "Text=******",   //屏蔽信息
  66.                 LAST);

  67.         web_reg_save_param("****",  //屏蔽信息
  68.                 "Search=Body",
  69.                 "LB=id\":\"",
  70.                 "RB=\",\"name",
  71.                 LAST);
  72. //事务开始
  73.         lr_start_transaction("upload");
  74.         web_add_header("Content-Length",
  75.                 "{bodylength}");
  76.         web_add_header("Content-Type",
  77.                 "multipart/form-data; boundary=---------------------------28490279842474");
  78. //        lr_output_message("content-length is %s", lr_eval_string("{bodylength}"));
  79. //        lr_output_message("requstbody is %s", lr_eval_string("{requestbody}"));
  80. //        web_add_header("HOST","10.0.100.18");
  81. //        实现上传。
  82.         web_custom_request("content",
  83.                 "URL={url}",     //url是固定的,这里屏蔽显示
  84.                 "Method=POST",
  85.                 "Resource=0",
  86.                 "Referer=",
  87.                 "Mode=HTTP",
  88.                 "Body={requestbody}",
  89.                 LAST);
  90. //事务结束
  91.         lr_end_transaction("upload", LR_AUTO);
复制代码
web_custom_request("content", 这行显示错误:
memory violation : Exception ACCESS\_VIOL
之前是在length=strlen( lr_eval_string("{requestbody}") ); 这行显示错误,后来注释掉,直接用length=strlen(body),这行的错误就没有了。
现在在请求的时候又发生这样的错误。


在回访的时候迭代多少次都没有错误。但是只要一并发运行超过40就开始返回这样的错误。
找了很多文档都没有找到解决办法。。。。。。。。。。。。。。。。。。。。
请求大神支持一下。

作者: jingzizx    时间: 2017-4-11 13:25
这个时候客户端资源、服务器资源是如何的,监控了吗,是不是有问题
作者: 梦想家    时间: 2017-4-13 09:43
解决了么怎么解决的?
作者: 可乐咖啡厅    时间: 2017-4-18 15:33
梦想家 发表于 2017-4-13 09:43
解决了么怎么解决的?

未解决。
测试结果:
只要是超过5M的文件,并发上传就报错。但是1个线程迭代多少次都没有错误。
4M文件,并发上传不会报错。
可能是loadrunner本身什么地方有限制。




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