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 运行脚本,查看结果

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

     

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

      

  • 相关阅读:
    【001】JS解析,反解析XML的一些问题
    [ Java面试题 ]并发篇
    [ Java面试题 ]WEB篇
    [ Java面试题 ]算法篇
    [ Java面试题 ]数据库篇
    [ Java面试题 ]泛型篇
    [ Java面试题 ]多线程篇
    [ Java面试题 ]持久层篇
    Java开发岗面试知识点解析
    [ SSH框架 ] Spring框架学习之二(Bean的管理和AOP思想)
  • 原文地址:https://www.cnblogs.com/jingdenghuakai/p/12360464.html
Copyright © 2011-2022 走看看