本文为本人原创,转载请注明文章出处和作者:Cheers.Lee
以前转载过一篇文章“如何让Loadrunner下载文件并保存在本地” ,这篇文章作为对那片文章的补充和深入,如有不足之处,欢迎大家点评。
我们要实现的操作目的:
<1>用Loadrunner模拟用户下载操作。
<2>文件下载完成生成不重复的文件名称。
操作: 如下图:打开一个网页,点击网页上“下载”链接,下载文件,并让文件保存在本地。
脚本如下:
--------------------------------------------------------------------------------
Action()
{
int flen;
longfiledes;
char filename1[50];
charfilename[50];
charfilepath[50];
srand(time(NULL)); // 生成不重复的随机数,
i=rand()%10; // 生成1-10之间的随机数,这块注意()不能漏写
lr_save_datetime("%Y%m%d%H%M%S",DATE_NOW,"now"); // 这块注意时间格式以及是否加双引号
sprintf(filename,"%s%d.rar",lr_eval_string("{now}"),i);
lr_save_string(filename,"filename1");
strcpy(filepath,"D:\\test\\download\\");
strcat(filepath,lr_eval_string("{filename1}"));
lr_message("%s",filepath);
web_set_max_html_param_len("20000"); //设置参数的最大长度,注意该值必须大于文件的大小
web_reg_save_param("fcontent","LB=", "RB=", "SEARCH=BODY", LAST);// 获取响应的全部内容,作为文件内容保存
web_url("MercuryWebTours",
"URL=http://192.168.8.9/MercuryWebTours/home.html",
"Resource=0",
"RecContentType=text/html",
"Referer=",
"Snapshot=t1.inf",
"Mode=HTML",
EXTRARES,
"URL=http://192.168.8.9/MercuryWebTours/software/wrar.rar",ENDITEM,
LAST);
flen = web_get_int_property(HTTP_INFO_DOWNLOAD_SIZE);
if(flen> 0)
{
//以写方式打开文件
if((filedes = fopen(filepath,"wb")) == NULL)
{
lr_output_message("Open File Failed!");
return -1;
}
//写入文件内容
fwrite(lr_eval_string("{fcontent}"),flen, 1, filedes);
//关闭文件
fclose(filedes);
}
return 0;
}
备注:“下载”链接对应的URL为:http://192.168.8.9/MercuryWebTours/software/wrar.rar 图片页面的URL地址为:http://192.168.8.9/MercuryWebTours/home.html