使用LoadRunner上传及下载文件

来源:互联网 发布:c语言窗口按键程序 编辑:程序博客网 时间:2024/06/14 11:35

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

       "Method=POST",

       "EncType=multipart/form–data",

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

 

 

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

}

 ----------------------------------------------------------------------------------------------

在录制选项中,Toos—Recording Option下,Recording选项中,有一个Advanced HTML选项,可以设置是否录制非HTML资源,只有选择了“Record within the current script step”时,List of Resource Attributes才会被录制到。非HTML资源的例子是gif和jpg图象文件。

 

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 京东过了7天退货怎么办 同款衣服比京东便宜怎么办 国美不让休班还不给加班钱怎么办 在国美电器买贵商品怎么办 给民俗差评老板骂你怎么办 华为p10后置摄像头调黑了怎么办 美图m6手机相机拍照模糊该怎么办 美图t8用久了卡怎么办 美图m4手机开不开机怎么办 比亚迪m6冷凝器散热不好怎么办 深圳市小汽车摇号审核没通过怎么办 扫码开门售货机拿了不给钱怎么办 预付卡办完后对方不愿退款怎么办 海尔88u52显示內存不足怎么办 京东账号绑定的手机好不用了怎么办 京东账号换手机了手机号没变怎么办 京东发票的号和手机对不起来怎么办 京东账号忘记了只有身份证怎么办啊 京东账号手机号换了忘记账号怎么办 新换的卡被注册过京东号怎么办 以旧换新旧的没给商家报案怎么办 宜家家居家居指南地址写错怎么办 苏宁任性付没还遭到恐吓心意怎么办 大王卡激活后一直是E网怎么办 京东退货已取走后悔了怎么办 退差价把下单立返红包退还了怎么办 苏宁电器发票丢了换电器怎么办 苹果5s访问限制密码忘了怎么办 京东买的暴风电视出现问题了怎么办 控水一个月的三角梅还没开花怎么办 帮别人办手机分期不还怎么办 国美在线没有信用卡分期不了怎么办 手机店办理分期被老板套现了怎么办 美的空调保修卡丢了怎么办 格力空调保修卡丢了怎么办 荣耀9i手机总是滑手怎么办? 春兰空调没发票不给修怎么办 洗衣机顶盖的安全开关坏了怎么办 苹果手机的开关健坏了怎么办 淘宝买的东西快递弄破损了怎么办 京东购买邮来手机里面没有怎么办