51Testing软件测试论坛

标题: 问一个关于loadrunner录制下载保存本地的问题 [打印本页]

作者: amigo1119    时间: 2010-4-2 18:14
标题: 问一个关于loadrunner录制下载保存本地的问题
我录制了一个脚本,是将系统文件下载到本地
通过网上的一些方法,已经可以使用一个用户将文件下载到本地了
但是如果使用多用户并发操作也只下载了一个文件。请高手指教一下。
在网上找到关于下载的脚本如下,还需要怎么设置呢?
Action()
{
     int flen,rNum;
     long file_stream;
     char fullpath[256], filename[32];
  rNum = rand() % 100;
//生成一个随机的文件全路径名
     itoa(rNum, filename, 10);     
     strcpy(fullpath, "c:\\");   
     strcat(fullpath, filename);
     strcat(fullpath, ".rar");

web_add_cookie("download_allow=www.caiqing.net; DOMAIN=www.caiqing.net");

web_url("view_detail.php",
  "URL=http://www.caiqing.net/view_detail.php?id=356",
  "Resource=0",
  "RecContentType=text/html",
  "Referer=",
  "Snapshot=t1.inf",
  "Mode=HTML",
  EXTRARES,
  "Url=/ad_images/hrZvD2uT.gif", "Referer=http://www.caiqing.net/view_detail.php?id=356", ENDITEM,
  "Url=/ad_images/co6imlsjn.gif", "Referer=http://www.caiqing.net/view_detail.php?id=356", ENDITEM,
  LAST);


   //设置参数的最大长度,该值必须大于文件的大小

web_set_max_html_param_len("20000000");


//关联服务器响应的Boby的全部内容(返回的下载文件内容)


web_reg_save_param("fcontent", "LB=", "RB=", "SEARCH=BODY", LAST);

web_url("down_file.php",
  "URL=http://www.caiqing.net/down_file.php?sfid=i01t5wyk&id=1",
  "Resource=0",
  "RecContentType=application/octet-stream",
  "Referer=http://www.caiqing.net/view_detail.php?id=356",
  "Mode=HTML",
  LAST);

//获取服务器中返回的文件长度
  flen = web_get_int_property(HTTP_INFO_DOWNLOAD_SIZE);

    if(flen > 0)   
    {
      /* 以二进制写模式打开随机文件*/
        if((file_stream = fopen(fullpath, "wb")) == NULL)
        {
            lr_output_message("Open File Failed!");
            return -1;
        }

       /*把关联的数据写入文件*/
        fwrite(lr_eval_string("{fcontent}"), flen, 1, file_stream);

        /* 关闭文件流 */
        fclose(file_stream);
    }

return 0;
}

[ 本帖最后由 amigo1119 于 2010-4-2 18:40 编辑 ]
作者: amigo1119    时间: 2010-4-3 16:34
自己顶一下
作者: 云层    时间: 2010-4-3 18:03
不好说,从脚本角度来说没啥问题,可能是业务上的问题,比如系统禁止你的多用户同时下载吧
作者: amigo1119    时间: 2010-4-3 19:23
我使用多个用户同时下载却能下载2个数据。
作者: skyzhu    时间: 2010-4-4 10:48
脚本最后加日志直接打印在场景里,总能知道问题的
比如可能随机出来的文件名是一样的,结果都存一起了,或者系统就不能同时下多个等等
作者: amigo1119    时间: 2010-4-5 10:47
好,我试试~~
作者: amigo1119    时间: 2010-4-5 17:24
对这些参数都进行输出,输出都为空,不知道是不是我写错了,我把能输出的内容都写上了。
        lr_output_message("test1=",itoa);
        lr_output_message("test2=",rNum);
        lr_output_message("test3=",fullpath);
        lr_output_message("test5=",file_stream);
        lr_output_message("test6=",lr_eval_string("{fcontent}"));
使用并发操作的时候,在下载文件的操作记录中却没有并发的操作流程记录。

[ 本帖最后由 amigo1119 于 2010-4-5 17:51 编辑 ]
作者: TIB    时间: 2010-4-5 21:47
lr_output_message("test1=%d",rNum);
lr_output_message("test1=%s",fullpath);
。。。
作者: amigo1119    时间: 2010-4-6 10:56
谢谢~~能打印出来结果了,但是并发操作还是没法看到是不是每个用户都下载的是否一样呢
如果使用迭代的话,是每个用户都可能下载成功的~~
作者: amigo1119    时间: 2010-4-6 17:40
再顶上去,等待高手解答
作者: skyzhu    时间: 2010-4-6 22:56
lr_message("test1=%s",fullpath);
lr_message("test2=%s",lr_eval_string("{fcontent}"));
加到你脚本里
在场景里运行的时候或者运行完,点场景右上角那里 error什么的统计旁边的数字,会出来个小窗口,里面有打印的日志,都打印出来了总能知道问题的
作者: test7    时间: 2010-4-7 07:44
留个脚印关注一下




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