51Testing软件测试论坛
标题:
关于回放Loadrunner录制的附件下载脚本时,保存附件大小的问题
[打印本页]
作者:
UnAngel_test
时间:
2010-10-27 22:50
标题:
关于回放Loadrunner录制的附件下载脚本时,保存附件大小的问题
本帖最后由 UnAngel_test 于 2012-5-8 18:29 编辑
=================================================================================================
现在又蹦出个新的问题,仍然是LR录制下载的时候:
功能描述:新建一条记录,进入这条记录的附件列表,上传好一个附件, 在录制的时候就是进入这条记录,进入附件列表,下载这条附件
相关操作:进入这条记录,将这条附件删除, 回放脚本下载脚本成功,保存的文件大小跟原附件一样大小,且从LR页面发现从服务器返回获取到的附件信息仍为原附件的信息
==================================================================================================
请高手帮下忙,今天捣鼓一天了还没解决
附件下载-保存脚本如下:
1 web_set_max_html_param_len("20000");
2 //获取响应的全部内容,作为文件内容保存
3 web_reg_save_param("fcontent", "LB=", "RB=", "SEARCH=BODY", LAST);
4 web_url("BaseAttachManageDownload.jsp",
5 "URL=http://192.168.100.88:8010/cmcceoms/UltraWF/manageprocess/Base6 AttachManageDownload.jsp?attID=000000000060942",
7 "Resource=0",
8 "RecContentType=text/html",
9 "Referer=http://192.168.100.88:8010/cmcceoms/UltraWF/manageprocess/B10 aseAttachManageDownload.jsp?attID=000000000060942",
11 "Snapshot=t16.inf",
12 "Mode=HTML",
13 EXTRARES,
14 "Url=BaseAttachManageDownload.jsp?attID=000000000060942",
15 "Referer=http://192.168.100.88:8010/cmcceoms/UltraWF/manageprocess/B16 aseAttachManageDownload.jsp?attID=000000000060942", ENDITEM,
17 LAST);
//获取响应中的文件长度
18 flen = web_get_int_property(HTTP_INFO_DOWNLOAD_SIZE);
19 chNumber=lr_eval_string("{NewParam}"); //生成随机数
20 if(flen >0)
21 {
22 strcpy(wxdong,"D:\\test");
23 strcat(wxdong,chNumber);
24 strcat(wxdong,".zip");
//以写方式打开文件
25 if((filedes = fopen(wxdong, "wb+")) == NULL)
26 {
27 lr_output_message("Open File Failed!");
28 return -1;
29 }
// strcat(filedes,"D:\\test0");
//strcat(filedes,chNumber);
// strcat(filedes,".rar");
//写入文件内容
30 fwrite(lr_eval_string("{NewParam}"), flen, 1, filedes);
//关闭文件
31 fclose(filedes);
1)环境实际情况:B/S架构系统,脚本使用url/http方式录制,IE6/7都尝试过,附件列表中只有一个附件:a.rar,附件大小为2.5M
2)想要实现:回放脚本的时候 ,在脚本22行所说的路径下:D盘根目录下保存一个*.zip文件,大小为2.5M(当然这个压缩变小了,暂时先忽略)
3)实际出现:回放脚本之后,在脚本22行所说的路径下:D盘根目录下保存了一个*.zip文件,大小为0KB
4)在上述情况之后,将脚本中20行改为“if(flen > 3000000)”,在D盘根目录下不会生成任何zip文件;当脚本中20行改为“if(flen > 2500000),在D盘根目录下生成了*.zip文件,且大小仍为0KB
经过4)的尝试,认为附件已经下载下来,但是在写入且保存的时候,未成功保存。
请高手指点下!!!
================================================================
脚本不做其他修改, 将30行的改为 fwrite(lr_eval_string("{fcontent}"), flen, 1, filedes); 就能保存成功了
作者:
UnAngel_test
时间:
2010-10-28 09:14
没人会吗
作者:
skyzhu
时间:
2010-10-28 09:59
wxdong 是什么东西
内容 fcontent 去哪里了?
作者:
UnAngel_test
时间:
2010-10-28 10:16
代码前面已经定义了wxdong,
int flen;
long filedes;
char* chNumber;
char wxdong[100];
就是不知道fcontent的内容去哪里了
作者:
UnAngel_test
时间:
2010-10-28 12:05
大手们,不能沉入海底呀
作者:
xinqidian123
时间:
2010-10-28 13:36
关注。。。。。。
作者:
xinqidian123
时间:
2010-10-28 13:38
你的下载方式是什么样的?是使用下载工具。。迅雷什么的。。
还是目标另存为啊?
作者:
UnAngel_test
时间:
2010-10-28 15:58
IE下载, 目标另存为
作者:
skyzhu
时间:
2010-10-28 16:05
30 fwrite(lr_eval_string("{fcontent}"), flen, 1, filedes);
作者:
UnAngel_test
时间:
2010-10-28 17:39
本帖最后由 UnAngel_test 于 2010-10-28 17:49 编辑
回复
9#
skyzhu
改成这样还是一样的效果
作者:
xinqidian123
时间:
2010-10-29 11:02
web_reg_save_param("fcontent", "LB=", "RB=", "SEARCH=BODY", LAST);
这句是干什么用的啊?没有看见关联的对象啊 ?
作者:
xinqidian123
时间:
2010-10-29 16:51
22 strcpy(wxdong,"D:\\test");
23 strcat(wxdong,chNumber);
24 strcat(wxdong,".zip");
//以写方式打开文件
25 if((filedes = fopen(wxdong, "wb+")) == NULL)
在24和25之间是不能直接这样使用的。。
在24和25之间添加: lr_save_string(wxdong,"num");
25行改为:
if((filedes = fopen(lr_eval_string("{num}"), "wb")) == NULL)
30行改为:
fwrite(lr_eval_string("{fcontent}"), flen, 1, filedes);
试试行不行
作者:
chinafree
时间:
2011-6-28 15:46
本帖最后由 chinafree 于 2011-6-30 13:10 编辑
网上的那个脚本有问题,我也出现你说的问题。我改了下脚本,这个100%成功,我都测试了
下载成功,文件大小正确,文件也是随机的,不会重复.
Action()
{
long create; //创建文件
int s_file_size,rNum; //文件大小
long s_file_data; //响应数据内容大小
char file_path[1024],filename[32];//拼凑文件路径
rNum = rand();
itoa(rNum, filename, 10);
strcpy(file_path, "d:\\down\\aa_");
strcat(file_path, filename);
strcat(file_path, ".rar");
web_add_cookie("HS_SUPPORT_LANG=en; DOMAIN=support-ts.huaweisymantec.com");
web_add_cookie("HS_SUPPORT_WEBSITEID=3; DOMAIN=support-ts.huaweisymantec.com");
web_set_max_html_param_len("1024000");
web_reg_save_param("s_share", "LB=", "RB=", "SEARCH=BODY", LAST);
web_url("163",
"URL=http://sp-download.huaweisymantec.com/dows.aspx?File_ID=3098&FileType_ID=3&sso=false",
"Resource=0",
"RecContentType=text/html",
"Referer=http://support-ts.huaweisymantec.com/support/SoftFile/SoftFile.do/GetSoftFileDetail/163?sso=false",
"Snapshot=t1.inf",
"Mode=HTML",
LAST);
s_file_size = web_get_int_property(HTTP_INFO_DOWNLOAD_SIZE);
create=s_file_data = fopen(file_path, "wb"); //创建文件
if(s_file_size > 0)
{
if(create == NULL)
{
lr_output_message("文件操作失败!");
return -1;
}
fwrite(lr_eval_string("{s_share}"), s_file_size, 1, s_file_data); //写入文件内容
fclose(s_file_data); //关闭文件
}
return 0;
}
作者:
UnAngel_test
时间:
2012-5-8 18:30
自己顶一个
欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/)
Powered by Discuz! X3.2