从九十到一百很难,但是从零到九十很简单。

【转】如何LoadRunner下载文件并保存在本地?

上一篇 / 下一篇  2010-09-13 10:21:30 / 个人分类:LoadRunner

   在HTTP协议中,本来就没有任何一个方法或是动作能够标识“下载文件”这个动作,对HTTP协议来说,下载文件或是请求页面,都只是一个GET方法,至于说我们下载文件时看到的那个提示我们给出用户名的对话框,那完全是客户端自身判断到我们请求的是一个文件而自行处理的。

        那么,究竟该如何才能让LoadRunner完成这个工作呢?

        通过上面的分析,我们已经知道了这样一些事实:

1、文件请求是通过GET方法请求的;

2、LoadRunner已经记录了客户端发出的对文件的请求,并能够收到文件内容;

        因此,我们完全可以通过关联的方法,从LoadRunner发出的请求的响应中获取到文件的内容,然后通过LoadRunner的文件操作方法,自行生成文件。

        从LoadRunner录制时的记录(Recording Log)中,我们可以看到具体的请求和请求的响应信息:

        从这里可以看到,我们只需要对以下语句进行关联,就能获得文件的内容。

web_url("viewfile.asp",
        
"URL=http://www.ltesting.net/bbs/viewFile.asp?BoardID=25&ID=217",
        
"Resource=0",
        
"RecContentType=text/html",
        
"Referer=http://www.ltesting.net/bbs/dispbbs.asp?boardID=25&ID=5187&page=1",
        
"Snapshot=t16.inf",
        
"Mode=HTML",
        EXTRARES,
        
"Url=viewFile.asp?BoardID=25&ID=217""Referer=http://www.ltesting.net/bbs/dispbbs.asp?boardID=25&ID=5187&page=1", ENDITEM,
        LAST);

        获得文件内容后,通过LoadRunner的fopen,fwrite,fclose函数,就可以将这部分内容保存成本地文件了。

    //获取响应中的文件长度
    flen = web_get_int_property(HTTP_INFO_DOWNLOAD_SIZE);

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

        点击下载完整的脚本文件。


TAG:

 

评分:0

我来说两句

日历

« 2024-04-29  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 6192
  • 日志数: 11
  • 建立时间: 2010-05-08
  • 更新时间: 2011-09-14

RSS订阅

Open Toolbar