&f4s*~nV2r,o0loadrunner录制下载文件,文件如何保存,如何获得服务器返回的文件名,保存文件时如何随机生成文件名51Testing软件测试网`zzrKSO
51Testing软件测试网S6B.UtT'u+n:n!l在录制脚本的过程中,我们把下载文件的请求单独放到一个action中,我们先简单的分析一下录制下载文件的脚本,在脚本中只能看到这样一个下载的请求:
go`.}Q8c uog03Hc m,~"Gn-N0web_url("download.php",51Testing软件测试网yLX
m+})Z
"URL=http://211.147.208.141/cn/resources/download.php?id=386",
*b0]s$~wTJ[j:b0 "Resource=1",51Testing软件测试网8V'f&w4k3D;R T9Og}3b7f*Q
"RecContentType=application/force-download",51Testing软件测试网q@3dAs
DXQ
"Referer=",
FB%KI-w.WQ'?c0 LAST);51Testing软件测试网YuEbU ks${Q
^;@
51Testing软件测试网B0?aYA9I6xk对于如何保存到本地,loadrunner是无法记录的,执行脚本时客户端发出这个请求,服务器端响应后,loadrunner接收到了服务器响应的文件内容(我们可以在日志中看到文件的内容,不过是乱码),既然loadrunner可以接收到文件内容,那么我们完全可以使用关联函数来获得该内容,在通过C语言的文件函数把获得的内容写在本地。51Testing软件测试网(v]/b4[? L8g%~.?
51Testing软件测试网7E[6{hsc
oSi2m那现在遇到这样一个问题,使用关联函数如何定义获得服务器响应内容的左右边界呢?因为我们把这个请求写在了一个单独的action中,所以在这里我们只要把服务器响应的所有内容均获取下来写到本地,也就完成了下载文件的保存。
9o
q0K*u7j"C]1M5ZE051Testing软件测试网y*RoZA,yDB~r
h下面看代码:51Testing软件测试网EwO
]C
+N.^N0G`S#l0Action()51Testing软件测试网-zSa)?Qcc G9bk
{
X8a1S9W*v,B%bI"T0 int flen; //定义一个整型变量保存获得文件的大小
Pf&u6|Ic3v0 long filedes; //保存文件句柄
'Rx9e:x3Ci(?G j~0 char file[256]="\0"; //保存文件路径及文件名51Testing软件测试网 fdG6IK&Z
]+X @;BV(MrW0
t;H8p@O,g:hv0 web_set_max_html_param_len("2000000");//设置页面接收最大的字节数,该设置应大于下载文件的大小
6F(StnM0X*g4KeV.XD+F6U2zV!y0 web_concurrent_start(NULL);51Testing软件测试网$}"pfUz Ws#n!U
51Testing软件测试网&xJ-h5sw!q+d+d web_reg_save_param("filecontent",
B.^Y`Bt]s2VTK0 "LB=",51Testing软件测试网`El&o&eVDR
"RB=",
!s%eq)Y.d)iuw2B0 "Search=BODY",
kM4r9]UR0 LAST);51Testing软件测试网*@-LT(y~mI-@U6GV
!v)CG9}4|M!E"gS0//使用关联函数获取下载文件的内容,在这里不定义左右边界,获得服务器响应的所有内容
;mf8I*m@6VRA0-L[g&Lb.p0web_reg_save_param("file",
1}]TWk6UIq?0 "LB=filename=\"",51Testing软件测试网MO ]qz-FhlW
"RB=\"",51Testing软件测试网0T#o9^ ?!Xk2o
"Search=all",
\'cc*w%|0 LAST);
{5Z(m*XPq|uj.]0