欢迎所有爱好软件测试的任人志士加入本空间!

用LoadRunner下载文件并保存到本地

上一篇 / 下一篇  2007-05-16 16:31:45

 论坛上经常有人问起,如何让LoadRunner可以下载文件并保存在本地。软件测试技术第一门户:Cd+u~$td.H!e+v

初看起来,这个问题应该不是问题:LoadRunner录制的是Client(浏览器)和服务器之间的交互,自然也就能记录到下载文件的动作和收到下载文件的全部内容,但如果真用LoadRunner去尝试这样一个工作,却会发现在LoadRunner录制的脚本中根本没有任何与下载文件相关的语句。

F}-L1lqXce8r0软件测试技术第一门户'}i)}/?e,K

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

软件测试技术第一门户rK#`f-R1AJ7O8u

那么,究竟该如何才能让LoadRunner完成这个工作呢?软件测试技术第一门户u!bsd[

软件测试技术第一门户+L'db-y;~8yk

通过上面的分析,我们已经知道了这样一些事实:软件测试技术第一门户0n.fX L]rd

软件测试技术第一门户B%iQ(OA~*L`]

1、文件请求是通过GET方法请求的;软件测试技术第一门户]5\4| c2?*L

&R"m]*Y.w/a02、LoadRunner已经记录了客户端发出的对文件的请求,并能够收到文件内容;软件测试技术第一门户#?z\GyO7}5\

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

%c"E ~EXs0

$J oC(zP1mT0从LoadRunner录制时的记录(Recording Log)中,我们可以看到具体的请求和请求的响应信息:软件测试技术第一门户4N7EUa|5W0U/?

软件测试技术第一门户~~wd a(E}

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

Z2` GRJ0
web_url("viewfile.asp",
m a0}0P_ Oyv,A2yg0        
"URL=http://www.testage.net/bbs/viewFile.asp?BoardID=25&ID=217",软件测试技术第一门户L!z|eJ]"N
        
"Resource=0",
.[*Sw%OGdw7[#u/U0        
"RecContentType=text/html",软件测试技术第一门户4_z!r k-QRJ4e([!K#j
        
"Referer=http://www.testage.net/bbs/dispbbs.asp?boardID=25&ID=5187&page=1",软件测试技术第一门户YJ){xD
        
"Snapshot=t16.inf",软件测试技术第一门户i,GNZQ
        
"Mode=HTML",软件测试技术第一门户Z+GcExz
        EXTRARES,
:W*urPn"}}Z0        
"Url=viewFile.asp?BoardID=25&ID=217""Referer=http://www.testage.net/bbs/dispbbs.asp?boardID=25&ID=5187&page=1", ENDITEM,
"Wtc)k{#c0        LAST);

x%Viean6I0获得文件内容后,通过LoadRunner的fopen,fwrite,fclose函数,就可以将这部分内容保存成本地文件了。
zoK'pr)@k0

M&\\r/bxv-y0
    //获取响应中的文件长度软件测试技术第一门户2eJ|m,Tq @8C
    flen = web_get_int_property(HTTP_INFO_DOWNLOAD_SIZE);软件测试技术第一门户+JUH]|%y/^ qe {8P
软件测试技术第一门户 GA,h'g7?i ^v
    
if(flen > 0)    软件测试技术第一门户D#_ @&D e7N,ew
    {软件测试技术第一门户}$M2Y T&X @
        
//以写方式打开文件软件测试技术第一门户B8kK1yY9F
        if((filedes = fopen("c:\\test.rar""wb")) == NULL)
-q4\"^$P+~%D1wD0        {软件测试技术第一门户 Y2B Q ia Z&ul(O
            lr_output_message(
"Open File Failed!");软件测试技术第一门户Hs| _!_C,W~,mr'x4AZ#]
            
return -1;软件测试技术第一门户&add pq]1`$JL
        }
K*A tJ7R1KSXD0        
//写入文件内容软件测试技术第一门户VN nz/U8B
        fwrite(lr_eval_string("{fcontent}"), flen, 1, filedes);
SXvSktWp%r Kx0        
//关闭文件
IqO,~J8aDj:C [b0
        fclose(filedes);
|r.N[;w ],``\0    }
软件测试技术第一门户 y1Q3D"ghG P1LA

点击下载完整的脚本文件软件测试技术第一门户&M"zw9C[I

软件测试技术第一门户9P j _g ]+w f3P

注意,使用该脚本文件时,请自行修改参数username和passwd的值。软件测试技术第一门户RS5z(f i6iQ:c[

-A ah/D1u;W%i^0当然,本脚本只是简单实现了文件下载并保存本地的功能,如果我们希望每次下载保存到本地的文件采用不同的名称,或是希望根据实际文件的后缀名动态生成后缀名,则还需要额外的工作。读者可以自行思考如何实现。^_^软件测试技术第一门户X0H#?6f$j1O1R5V


TAG:

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

日历

« 2008-12-01  
 123456
78910111213
14151617181920
21222324252627
28293031   

数据统计

  • 访问量: 7694
  • 日志数: 113
  • 图片数: 2
  • 建立时间: 2007-04-28
  • 更新时间: 2008-03-04

RSS订阅

Open Toolbar