loadrunner录制下载功能解决方式

上一篇 / 下一篇  2012-11-12 10:49:00 / 个人分类:loadrunner

 对于如何保存到本地,loadrunner是无法记录的,执行脚本时客户端发出这个请求,服务器端响应后,loadrunner接收到了服务器响应的文件内容(我们可以在日志中看到文件的内容,不过是乱码),既然loadrunner可以接收到文件内容,那么我们完全可以使用关联函数来获得该内容,在通过C语言的文件函数把获得的内容写在本地。

        那现在遇到这样一个问题,使用关联函数如何定义获得服务器响应内容的左右边界呢?因为我们把这个请求写在了一个单独的action中,所以在这里我们只要把服务器响应的所有内容均获取下来写到本地,也就完成了下载文件的保存。

        下面看代码:

 

 

Action2()
{

    long  create;    //创建文件
    int s_file_size,rNum; //文件大小
    long s_file_data; //响应数据内容大小
    char file_path[1024],filename[32];//拼凑文件路径

    rNum = rand();

     itoa(rNum, filename, 10);    
     strcpy(file_path, "d:\\down\\");   //文件放置路径
     strcat(file_path, filename);
     strcat(file_path, ".apk");    //文件保存后缀名

   

    web_set_max_html_param_len("1024000");   //设置页面接受的文件大小
  
    web_reg_save_param("s_share", "LB=", "RB=", "SEARCH=BODY", LAST);

 

web_url("downfile.jsp",
  "URL=http://192.168.1.209:8888/xianfeng/downfile.jsp?filename=KVPioneer32578.apk",
  "Resource=1",
  "RecContentType=application/x-download",
  "Referer=http://192.168.1.209:8888/xianfeng/download.jsp",
  LAST);

 

     s_file_size = web_get_int_property(HTTP_INFO_DOWNLOAD_SIZE);   //获取文件大小

     create=s_file_data = fopen(file_path, "wb");  //创建文件

  if(s_file_size > 0)
  {
  if(create == NULL)
   {
   lr_output_message("文件操作失败!");
   return -1;
   }
 
   fwrite(lr_eval_string("{s_share}"), s_file_size, 1, s_file_data);    //写入文件内容


   fclose(s_file_data);   //关闭文件
  }
    return 0;


TAG:

 

评分:0

我来说两句

日历

« 2024-05-01  
   1234
567891011
12131415161718
19202122232425
262728293031 

数据统计

  • 访问量: 5054
  • 日志数: 13
  • 建立时间: 2012-05-31
  • 更新时间: 2013-11-11

RSS订阅

Open Toolbar