|
在使用LR录制脚本过程中,有时可能需要录制上传文件的脚本,下面详细说明一下怎样使用LR工具编写上传文件的脚本。
首先,使用LR录制完成一份上传文件的脚本。
其次,对录制完成的脚本进行编辑。下面是笔者在工作中编辑好的上传文件脚本,供大家参考。
Action()
{
int flen;////定义一个整型变量保存获得文件的大小
long filedes;///保存文件句柄
char filename[1024]="\0";////保存文件路径及文件名
web_set_max_html_param_len("20000");//设置参数的最大长度,注意该值必须大于文件的大小
lr_think_time(10);
lr_start_transaction("进口汇押登记簿");
................................................................
................................................................
lr_end_transaction("进口汇押登记簿", LR_AUTO);
lr_think_time(10);
lr_start_transaction("下载");
//使用关联函数获取下载文件的内容,在这里不定义左右边界,获得服务器响应的所有内容
web_reg_save_param("fcontent",
"LB=",
"RB=",
"Search=BODY",
LAST);
web_url("reportServlet",
"URL=http://*.*.*.232:9082/UPR/reportServlet?action=4&reportName=report1&isDialog=1&excelFormat=2003",
"Resource=0",
"RecContentType=text/html",
"Referer=http://*.*.*.232:9082/UPR/irp/rpt/cxreport/report_view.jsp?query=query¶ms=qry_date={qry_date};dept_no=803000000;&bbid=803_MGR_XT010&corp=803&deptid=803000000",
"Snapshot=t9.inf",
"Mode=HTML",
EXTRARES,
"URL=reportServlet?action=3&file=803_MGR_XT010.raq&columns=0&srcType=file&width=-1&height=0&reportParamsId={CorrelationParameter_1}&cachedId={CorrelationParameter_2}&t_i_m_e={CorrelationParameter_3}&excelFormat=2003&pageStyle=0&formula=0", "Referer=http://*.*.*.232:9082/UPR/reportServlet?action=4&reportName=report1&isDialog=1&excelFormat=2003", ENDITEM,
LAST);
flen = web_get_int_property(HTTP_INFO_DOWNLOAD_SIZE);//
strcat( filename,"d:\\download\\" );////将路径保存到filename变量中
strcat( filename,lr_eval_string("{filename}") );//根据一定格式生产文件名称,{filename}已经参数化
strcat( filename,".xls" );//将下载的文件后缀名.xls拼接在filename变量之后
//到此为止一个LoadRunner已经获得了一个完整的文件名
if(flen > 0)
{
if((filedes = fopen(filename, "wb")) == NULL)
{
lr_output_message("Open File Failed!");
return -1;
}
//写入文件内容
fwrite( lr_eval_string("{fcontent}"),flen,1,filedes );
//关闭文件
fclose( filedes );
}
//lr_message( "************%s*************1",
// lr_eval_string("{CorrelationParameter_1}") );
//lr_message( "************%s*************2",
// lr_eval_string("{CorrelationParameter_2}") );
//lr_message( "************%s*************3",
// lr_eval_string("{CorrelationParameter_3}") );
lr_end_transaction("下载", LR_AUTO);
return 0;
} |
|