(1)LoadRunner上传文件
web_submit_data("importStudent.do", "Action=https://testserver/console/importStudent.do", "Method=POST", "EncType=multipart/form-data", "RecContentType=text/html", "Referer=https://testserver/console/displayStudentList.do", "Snapshot=t12.inf", "Mode=HTTP", ITEMDATA, "Name=uploadFile", "Value=D://Excel//data161955.zip", "File=yes", ENDITEM, LAST); 注:脚本录制使用Http/Html协议或Click and Script协议均可,以上是使用Http/Html录制的的脚本。需要特别注意的是,无论使用哪种协议录制,待上传的文件路径及文件名称只能为英文字符,而不能为中文字符。否则,可能将文件上传的二进制流同时录制到LR的脚本中。 这个问题同时也说明,LR对中文的支持还远不够。 下面是该应用更详细的示例。 Action() { //定义double类型的变量trans_time,用来保存事务的执行时间。 double trans_time; //定义int类型的变量status,用来保存事务执行的返回的值。 int status;
lr_start_transaction("测试");
//使用内置函数lr_get_transaction_duration获取事务的执行时间。 trans_time=lr_get_transaction_duration("测试"); status= web_submit_data("importStudent.do", "Action=https://testserver/console/importStudent.do", "Method=POST", "EncType=multipart/form-data", "RecContentType=text/html", "Referer=https://testserver/console/displayStudentList.do", "Snapshot=t12.inf", "Mode=HTTP", ITEMDATA, "Name=uploadFile", "Value=E://datafile//data01.zip", "File=yes", ENDITEM, LAST); //增加手工事务,如果该测试事务执行返回值为0,则事务执行成功,否则执行失败。 if (status == 0) lr_end_transaction("测试", LR_PASS); else lr_end_transaction("测试", LR_FAIL);
//打印事务执行时间。 if (trans_time) lr_output_message("事务执行时间为:%f 秒",trans_time); else lr_output_message("事务执行时间未知!");
return 0; }
以下是LR的帮助文档中的web_submit_data函数的一个应用示例,从该示例中也可见一斑。 web_submit_data("Attachments", "Action=http://ttage@.Devonshire.uk/Attachments?YY=45434", "Method=POST", "EncType=multipart/form–data", "TargetFrame=", "RecContentType=text/html", "Referer=http:///ttage@.Devonshire.uk/Compose?YY=20435", "Snapshot=t5.inf", "Mode=HTML", ITEMDATA, "Name=userFile0", "Value=E://sense_sensibility//Elinor.txt", "File=yes", "ContentType=text/html", // Override default "text/plain" for .txt files ENDITEM, "Name=userFile1", "Value=E://sense_sensibility//Marianne.jpg", "File=yes", ENDITEM, LAST);
(2)LoadRunner下载文件
Action() {
/*下载帮助文档*/
//定义一个整型变量保存获得文件的大小 int flen;
//保存文件句柄 long filedes;
//保存文件路径及文件名 char file[256]="/0";
//定义一个随机数 char * strNumber;
//Returns the string argument after evaluating embedded parameters. strNumber=lr_eval_string("{RandomNum}");
//将路径保存到file变量中 strcat(file,"D://Excel//");
//将获得的随机数拼接在file变量之后 strcat(file,strNumber);
//将下载的文件后缀名.rar拼接在file变量之后 strcat(file,".rar");
//到此为止一个LoadRunner已经获得了一个完整的文件名
//设置参数的最大长度,注意该值必须大于文件的大小 web_set_max_html_param_len("20000");
//使用关联函数获取下载文件的内容,在这里不定义左右边界,获得服务器响应的所有内容 web_reg_save_param("fcontent", "LB=", "RB=", "SEARCH=BODY", LAST);
/*下载帮助文件*/
lr_start_transaction("下载帮助文件");
//发送下载帮助文件的请求
web_url("DownLoadServlet", "URL=https://testserver3/servlet/DownLoadServlet?filename=help", "Resource=1", "RecContentType=application/x-msdownload", "Referer=", "Snapshot=t41.inf", LAST);
//获取响应中的文件长度 flen = web_get_int_property(HTTP_INFO_DOWNLOAD_SIZE);
if(flen > 0) { //以写方式打开文件 if((filedes = fopen(file, "wb")) == NULL) { lr_output_message("打开文件失败!"); return -1; } //写入文件内容 fwrite(lr_eval_string("{fcontent}"), flen, 1, filedes); //关闭文件 fclose(filedes); }
lr_end_transaction("下载帮助文件",LR_AUTO);
return 0; }
|
|