上一篇/下一篇2008-02-22 16:36:00 / 个人分类:load runner使用技术
查看( 648 )/评论( 8 )/评分(0/0)
今天看了关河老师的博客一篇《用LoadRunner下载文件并保存到本地》,我很受启发,根据关河老师提供的原创脚本,我把他早博客中没有写出的那部分提供出来“我们希望每次下载保存到本地的文件采用不同的名称,或是希望根据实际文件的后缀名动态生成后缀名”,就是对下载的文件名做参数化操作,也算自己对测试经验的一次积累吧,并且希望想用loadrunner录制下载脚本/参数化文件名称的同学一个很好的学习机会,尽量少走弯路。其实我在这次的编写C脚本中得到一个很大的启发,那就是平时多去学习C语言,多去看lr帮助,多去查看LR函数。
http://www.cnblogs.com/guanhe/archive/2006/06/27/436746.html
我在网上找了一个网站进行录制脚本的,这个网站不做,感觉很适合我连手呵呵:http://www.netqin.com。(里面的软件很适合智能手机哦,包月很便宜的,服务也好!)
根据关河老师的那个脚本,录制/编写完下载的脚本后,就开始参数化那个下载的文件名啦(如果我有这个需求的话)。我尝试过很多方法:
1.对 fopen("c:\NetQin_P919_CommMaster.SIS", "wb")里的文件名的一部分919,直接在fopen()中进行参数化:fopen("c:\NetQin_P{随机码}_CommMaster.SIS", "wb"),结果:测试失败。
2.就是使用“设一个数值的变量,然后把它转成字符串,再与前面的字符串连起来”,这里用到了strcat()连接函数。结果:参数设置成功,运行通过。
具体做法:
Action()
{
int flen;
long filedes;
char file[256]=" ";
char fuzhi[10]=" ";
char * chNumber=fuzhi;
chNumber=lr_eval_string("{随机码}");
strcat(file,"c:\NetQin_P");
strcat(file,chNumber);
strcat(file,"_CommMaster.SIS");
//设置参数的最大长度,注意该值必须大于文件的大小
web_set_max_html_param_len("2000000");
//获取响应的全部内容,作为文件内容保存
web_reg_save_param("fcontent", "LB=", "RB=", "SEARCH=BODY", LAST);
lr_start_transaction("down");
web_url("down.jsp",

"URL=http://www.netqin.com/down.jsp?downID=30&action=Url_1",
"Resource=1",
"RecContentType=application/vnd.symbian.install",
"Referer=",
"Snapshot=t3.inf",
LAST);
//获取响应中的文件长度
flen = web_get_int_property(HTTP_INFO_DOWNLOAD_SIZE);
if(flen > 0)
{
//以写方式打开文件
if((filedes = fopen(file, "wb")) == NULL)
{
lr_output_message("Open File Failed!");
return -1;
}
//写入文件内容
fwrite(lr_eval_string("{fcontent}"), flen, 1, filedes);
//关闭文件
fclose(filedes);
}
lr_end_transaction("down",LR_AUTO);
// lr_think_time(3);
return 0;
}
运行结果:在我的机器C盘产生了三个文件(只三个参数哦,迭代三次),NetQin_P110_CommMaster.SIS、NetQin_P112_CommMaster.SIS、NetQin_P113_CommMaster.SIS
提供一个不错的文章去供大家练习字符串的操作:http://www.cnblogs.com/pent/archive/2007/12/17/1003363.html
LoadRunner下载文件的实验
http://www.cnblogs.com/pent/archive/2007/09/04/881708.html