分享

使用LoadRunner上传及下载文件

 战争213 2015-01-14

1LoadRunner上传文件


 


         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);


 


 


2LoadRunner下载文件


 


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;


}


 


 


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多