pytest + yaml 框架 -17.文件上传功能

Posted 上海-悠悠

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pytest + yaml 框架 -17.文件上传功能相关的知识,希望对你有一定的参考价值。

前言

本插件集成了 requests_toolbelt 插件处理Content-Type: multipart/form-data 类型文件上传接口。
pip 安装插件

pip install pytest-yaml-yoyo

文件上传接口功能在 v1.1.3 版本实现

文件上传multipart/form-data

用fiddler抓包,查看抓到的接口,以下这种接口就是multipart/form-data

  • Content-Type: multipart/form-data
  • body参数是这种格式:

-----------------------------22165374713946
Content-Disposition: form-data; title=“localUrl”

yoyoketang.png
-----------------------------22165374713946
Content-Disposition: form-data; name=“imgFile”; filename=“yoyoketang.png”
Content-Type: image/png

在yaml 文件中示例

在postman 中,可以直接选择一个文件上传,非常方便

我们在yaml中也一样,支持文件类的参数,需单独拿出来放到 files 字段里面。

test_upfile.yml 示例

文件上传:
  name: upload file
  request:
      url: http://127.0.0.1:8000/api/v1/upfile/
      method: POST
      data:
          title: 文件上传
      files:
          file: data/abc.jpg

文件abc.jpg 需放到项目根目录data下

files 里面需要传的具体字段,需根据接口文档定义的参数名称。

当然你把其它字符串字段一起放到files 里面也没问题

文件上传:
  name: upload file
  request:
      url: http://127.0.0.1:8000/api/v1/upfile/
      method: POST
      files:
          title: 文件上传
          file: data/abc.jpg

(本插件也是根据你是否在 request 中传了 files 字段来判断是不是需要上传文件)

以上是关于pytest + yaml 框架 -17.文件上传功能的主要内容,如果未能解决你的问题,请参考以下文章

pytest + yaml 框架 - 3.全局仅登录一次,在用例中自动在请求头部添加Authentication token认证

pytest + yaml 框架 -6.hooks 钩子功能实现

pytest + yaml 框架 -14.钉钉机器人通知测试结果

pytest + yaml 框架 -14.钉钉机器人通知测试结果

pytest + yaml 框架 -14.钉钉机器人通知测试结果

pytest + yaml 框架 -11.全局 base_url 配置