zoukankan      html  css  js  c++  java
  • python接口自动化测试

    前言

    如果需要发送文件到服务器,比如上传图片、视频等,就需要发送二进制数据。

    一般上传文件使用的都是 Content-Type: multipart/form-data; 数据类型,可以发送文件,也可以发送相关的消息体数据。

    POST一个多部分编码(Multipart-Encoded)的文件

    使用 requests 上传文件的基本步骤

    1. 构造文件数据,通过 open 函数以二进制方式打开文件
    2. 构造相关数据
    3. 发送请求,将文件数据以  files  参数传入,其他消息体数据通过  data 、json 、 headers 、 cookies 传入
     1 url = 'http://httpbin.org/post'  # 上传文件接口
     2 files = {
     3     'file': ('test.png',  # 文件名称
     4              open('../file/test.png', 'rb'),  # 文件路径
     5              'image/png',  # 文件类型
     6              {'Expires': '0'}  # 其他参数,非必传
     7              )
     8 }  # => 打开上传文件并且加入文件相关参数
     9 
    10 data = {
    11     "name": "test"
    12 }
    13 
    14 # data传入请求参数dict,files传入待上传文件参数dict
    15 r = requests.post(url, data=data, files=files)
    16 print(r.json())

    注意

    files字典里的  'file' 键是根据上传组件的name属性来改变的,不一定是file;

    如下图上传组件,当你上传一张图片时,抓包可以发现会传两个值,一个是fileField,一个是type,所以你的文件数据dict要包含 fileField 和 type 两个key

    1     files = {
    2         'fileField': ('test.png',  # 文件名称
    3                       open('../file/test.png', 'rb'),  # 文件路径
    4                       'image/png',  # 文件类型
    5                       {'Expires': '0'}  # 其他参数,非必传
    6                       ),
    7         'type': 1
    8     }  # => 打开上传文件并且加入文件相关参数


  • 相关阅读:
    Java实验项目二——打印某年某月日历
    Java实验项目二——猜数游戏
    C语言用面向对象的思想写贪吃蛇
    各操作系统系统快捷键(更新)
    深入学习 memset 函数
    PHP开发环境搭建及开发工具
    Zepto v1.0-1源码注解
    Nginx 反向代理配置
    nginx 安装
    JQ实现右下角scrollTop()事件
  • 原文地址:https://www.cnblogs.com/poloyy/p/12232541.html
Copyright © 2011-2022 走看看