zoukankan      html  css  js  c++  java
  • jmeter-文件上传和下载文件

    jmeter-文件上传和下载文件

    文件上传

    一、测试功能:

    1、导入excel文件。

    二、重点步骤:

    1、Fiddler抓取入参,其中BODY信息如下:

    Name:Content-Disposition: form-data; name="CONTENT"; filename="200SKU.xlsx"

    Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet

    Value:<file>

    注:其中name为参数名称,Content-Type为MIME类型

    2、jmeter添加sample之HTTP请求,填写内容如下图:

    三、注意事项

    1、在http请求过程中上传附件(Excel文件、图片、安装包、视频文件等)虽然基本上Content-Type为:multipart/form-data,但Content-Type也有不一样的,一般情况下Excel文件的Content-Type为:application/vnd.openxmlformats-officedocunment,spreadsheetml.sheet;图片Content-Type为: image/jpeg,app包Content-Type为:application/octet-stream。最终填写的值要以抓包中的入参信息为准。

    2、Request Headers中的Content-Type在此HTTP请求中不放在Parameters中维护,因为它是动态的信息。

    3、喜欢粘贴复制HTTP请求的朋友们要注意,除了上传附件的请求中要勾选 Use multipart/form-data for POST和Browser-compatible headers,下面的请求就要去勾选啦!并且如果HTTP信息头管理器是公用的话要注意区别开来,否则脚本会报错。

    4、Usemultipart/form-data for POST:当发送HTTP POST请求时,使用Use multipart/form-data方法发送,可用它做文件上传,这个属性是与方法POST绑定的。这里需要勾选此项。

    5、Browser-compatibleheaders:浏览器兼容模式,如果使用了Use multipart/form-data for POST,这里建议勾选此项。

    6、按以上方式维护HTTP请求,执行脚本,如果报错且提示“导入的数据为空”,那么需要把Implementation选择为“HttpClient4”或者“Java”。选择哪一个需要用Badboy录制一下后导出成.jmx文件,再用jmeter打开查看。

    7、Implementation中:

    Java:使用的http是使用的JAVA JVM提供的方法,有相关的限制:1)连接如何重用在请求中没有控制;2)当jmeter释放了一个请求后,在同样的进程中可能不会再使用了;3)只使用于单进程模式;4)HTTPS代理请求有两个bug没存在;5)不支持虚拟主机;6)不支持相关的方法;7)不支持存储证书的请求。

    HttpClient4:使用Apache HttpClient 4.1部件。

    空白:使用HTTP默认请求中的配置或jmeter.properties中jmeter.httpsample中的配置。

     

    文件下载

    3.1准备工作

    图片的url是:http://a.hiphotos.baidu.com/image/pic/item/4b90f603738da977b1e8c6c7ba51f8198718e313.jpg

    3.2 编写脚本流程

          首先添加一个线程组,然后在线程组里面添加一个http请求,因为是获取数据,所有是get请求,写好下载的地址

                  1、添加线程组 :右键测试计划,添加-Threads(Users)-线程组;

                  2、添加一个http请求:右键线程组,添加-Sampler-HTTP请求;

                  3、写好http请求中的url和路径;

            不过这个是下载脚本,下载的话,有一步是要把文件保存到咱们本地的,这个jmeter没有现成的东西可以用,就得咱们自己写beanshell来实现,把文件保存到本地。

            当然你如果要写beanshell的话,你得会它的语法,它就是java写的。不过也不用愁不会写java咋整,这个保存文件的是死格式就这么写,记住就行了,需要下载的时候复制过去就行。

                  4、添加beanshell,获取到返回的文件内容,保存到一个文件里面。右键线程组,添加-Sampler-BeanShell Sampler,beanshell代码如下:

    import java.io.*;
     
    byte[] result = prev.getResponseData();  //这个是获取到请求返回的数据,prev是获取上个请求的返回
     
    String file_name = "C:\Users\bjniuhanyang\Desktop\BaiDu.jpg"; //代表存放文件的位置和文件名
     
    File file = new File(file_name);
     
    FileOutputStream out = new FileOutputStream(file);
     
    out.write(result);
     
    out.close(); 

     5、添加一个查看结果树,查看接口调用结果。右键线程组,添加-监听器-查看结果树;

       3.3 脚本实例

           协议:http
           服务器名称:a.hiphotos.baidu.com

           端口号:80 (提示,端口号默认是就是80,可以不用写哦)
           请求类型:get

           路径:/image/pic/item/4b90f603738da977b1e8c6c7ba51f8198718e313.jpg

         脚本截图如下:

     

          下面这个是http请求里面的,也就是咱们获取图片的

          

     

          下面这个是beanshell里面的内容,也就是咱们保存文件的操作。

         

          2.4 运行脚本,查看结果

              看下面的图,运行结果,已经可以看到刚才这张图片了,而且请求都是成功的。

     

      咱们再去桌面上看,文件已经存在桌面上了。

      

  • 相关阅读:
    Sql Server 2008卸载后再次安装一直报错
    listbox 报错 Cannot have multiple items selected when the SelectionMode is Single.
    Sql Server 2008修改Sa密码
    学习正则表达式
    Sql Server 查询第30条数据到第40条记录数
    Sql Server 复制表
    Sql 常见面试题
    Sql Server 简单查询 异步服务器更新语句
    jQuery stop()用法以及案例展示
    CSS3打造不断旋转的CD封面
  • 原文地址:https://www.cnblogs.com/jingdenghuakai/p/12360464.html
Copyright © 2011-2022 走看看