• jmeter上传图片接口+下载文件接口


    JMeter上传图片到服务器 

    通过Fiddler捕捉到的请求如下,该请求中请求头中有token,请求体中只有一个name=file的参数

     JMeter中新建Http请求,如下图,勾选KeepAlive和对POST使用multipart/form-data,token在请求头中,故在HTTP请求中将token放在Http请求头中,请求体参数只要填写file即可,上图中捕获到的参数name=file,所以在文件上传这里参数名称要填name对应的值,此处是file,否则会报错(见本文下方),MIME类型是捕获到的Content-Type的值,此处是image/jpeg,文件名称只需要从本地选择图片即可

    对请求头中的token参数进行处理,如下图

     请求写好后执行,执行结果如下则表示上传成功

    遇到的问题:

    当参数名称和name的值不对应时,如下图,执行请求会提示:{"code":4702,"message":"Required request part 'file' is not present","timestamp":1611286744418,"extra":null}

     解决方式:只要将上传文件中的参数名称改成file即可

    JMeter下载文件到本地

    1.编写下载请求信息(路径+参数)

     2.设置请求头信息

     3.执行请求后,请求返回了文件信息,如下图,此处只是把数据从数据库中下载到服务器

     

    4.使用正则表达式获取返回信息头中的filename 

     这里的表达式要写更全,如果只写成filename=(.*)则会获取不到,导致最后保存的文件名称变成${filename}

    5.把数据从应用服务器保存到本地,在请求下新增一个BeanShell 后置处理程序

    //备注:BeanShell PostProcessor中代码如下:
    //JMeter的内置API:prev.getResponseData()获取请求的响应内容
    byte[] responseData = prev.getResponseData(); 
    
    //①仅以文件名作为filepath的值,则导出的文件会默认保存在Jmeter安装路径的bin(即JVM的启动路径);
    //private String filePath = "${ExportExcelName}";
    
    //②指定绝对路径
    private String filePath = "C:/Users/admin/Downloads/${filename}.xlsx";  //正则表达式提取时的引用名称
    BufferedOutputStream bos = null;
    FileOutputStream fos = null;
    File file = null;
    try {
       File file = new File(filePath);
       fos = new FileOutputStream(file); //不添加参数true,以非追加的方式添加内容
       bos = new BufferedOutputStream(fos);
       bos.write(responseData);
    } catch (Exception e) {
       e.printStackTrace();
    } finally {
       if (bos != null) {
          try {
             bos.close();
          } catch (IOException e1) {
             e1.printStackTrace();
          }
       }
       if (fos != null) {
          try {
             fos.close();
          } catch (IOException e1) {
             e1.printStackTrace();
          }
       }
    }
    

      注:上面代码只需要改动存放文件的位置即可

    最终的接口请求结构如下图:

    6.执行上面的请求,查看结果树中返回正确的文档数据

     在BeanShell的文件保存路径下查看保存的文件,

  • 相关阅读:
    存储器多级结构
    649. Dota2 参议院
    pycharm安装第三方库失败
    python -m pip install --upgrade pip升级失败
    P1149 火柴棒等式
    HTTP详解
    ref与out
    EF查询数据库框架的搭建
    EF查询数据库框架的搭建
    css清除浮动
  • 原文地址:https://www.cnblogs.com/wx170119/p/14312091.html
Copyright © 2020-2023  润新知