LOADRUNNER上传及下载文件

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://barton.cottage@.Devonshire.uk/Attachments?YY=45434”,

 

       “Method=POST”,

 

       “EncType=multipart/formdata”,

 

       “TargetFrame=”,

 

       “RecContentType=text/html”,

 

       “Referer=http:///barton.cottage@.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;

 

}

原创文章,作者:carmelaweatherly,如若转载,请注明出处:https://blog.ytso.com/192431.html

(0)
上一篇 2021年11月15日
下一篇 2021年11月15日

相关推荐

发表回复

登录后才能评论