python+requests接口自动化4. 接口实现文件(图片)上传

Posted lht3347

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python+requests接口自动化4. 接口实现文件(图片)上传相关的知识,希望对你有一定的参考价值。

python+requests接口自动化

1. 介绍

Python+Requests接口自动化介绍、协议及环境搭建

2. 快速上手(发送get和post请求<含json>)

发送get请求与post请求(包含json格式的请求)

3. 接口<参数>的关联与cookie提取

接口<参数>的关联与cookie提取

4. 接口实现文件(图片)上传

通过上面的一些学习,我们了解到requests发送请求一般都是以文本的形式发送的。

如果需要上传文件(图片)到服务器呢?比如上传图片、视频等。

那需要发送将对应的内容转换成二进制数据进行发送。

一般上传文件使用的基本都是Content-Type: multipart/form-data类型的请求。如果大的文件内容,则需要将请求的数据转换成数据流的形式发送。

下面我们来看下通过requests上传文件(图片)的相关步骤:

  1. 通过 open 函数以二进制方式打开文件(图片)
  2. 发送请求,将文件(图片)以 files 参数传参(格式:字典),其它结合body的数据通过 datajson 进行传参

参考示例代码如下:

# 上传文件(图片)的地址
upload_url = "http://127.0.0.1:5656/api/user/uploadImage"
# 上传文件的信息头
upload_header = "token":"登录后的token值"
# 上传文件(图片)的请求参数
file = "file": open(r"C:\\Users\\XXUZ\\Pictures\\test.png", "rb")
# 发送请求 ---> 注意别写错了,是files 
upload_res = requests.post(url=upload_url,files=file,headers=upload_header)
print(upload_res.json())

如果在测试过程中遇到上传文件(图片)的同时还需要传入其它表单数据,可直接之前学的post请求通过字典格式把数据通过 data 参数进行传递。

# 发送请求,携带表单数据等--> 也可包括cookie之类的
upload_res = requests.post(url=upload_url,files=file,data=upload_data,headers=upload_header)

警告:

----------------《采用requests官方提供的警告》
我们强烈建议你用二进制模式(binary mode)打开文件。这是因为 Requests 可能会试图为你提供 Content-Length header,在它这样做的时候,这个值会被设为文件的字节数(bytes)。如果用文本模式(text mode)打开文件,就可能会发生错误。

结尾

如果你觉得文章对你有帮助,请动起你们的小手手点下赞(大拇指)哈(一键三连更好),Thanks♪(・ω・)ノ。

以上是关于python+requests接口自动化4. 接口实现文件(图片)上传的主要内容,如果未能解决你的问题,请参考以下文章

python+requests接口自动化测试实战

python+requests接口自动化测试4--参数化

python3+requests实现接口自动化1

python接口自动化测试-requests.post()

python接口自动化测试-requests.post()

Python——requests接口自动化测试