接口测试---requests上传图片

我们在做接口测试的时候肯定会遇到一些上传图片,然后进行校验,今天我们一起学习通过requests上传图片,查看是否上传成功

抓取上传接口

这里我以百度为例子进行操作,为啥要用百度呢,主要上传文件比较简单不用登录啥的~~~通过fiddler抓取上传图片的接口地址以及请求携带的参数内容

通过下面操作进行选择图片进行上传,然后通过fiddler进行分析接口内容
在这里插入图片描述
通过分析抓取的内容,我们可以看到接口地址为:“https://graph.baidu.com/upload”
在这里插入图片描述
请求的参数类型为from-data,这个类型后面会具体的介绍,这里先不具体说了,这里不影响我们操作
在这里插入图片描述
参数格式
在这里插入图片描述
这里在插个知识点,就是requests文档中有对上传文件单独书写,我们可以按照他们的标准进行书写详细的可以进行查看requests官方文档
在这里插入图片描述
参数书写情况为:

# 123.jpg为图片,与代码在当前目录下,image/jpeg 为图片格式
files = {
    "tn":"pc",
    "image":("123.jpg",open('123.jpg','rb'),"image/jpeg"),
    "from":"pc",
    "image_source":"PC_UPLOAD_SEARCH_FILE",
    "range":'{"page_from": "searchIndex"}'
}

了解更多,642830685。群内免费领取最新软件测试大厂面试资料和Python自动化、接口、框架搭建学习资料!技术大牛解惑答疑,同行一起交流。

请求上传图片

选择图片

在这里插入图片描述

# coding:utf-8
import requests
url = "https://graph.baidu.com/upload"
files = {
    "tn":"pc",
    "image":("123.jpg",open('123.jpg','rb'),"image/jpeg"),
    "from":"pc",
    "image_source":"PC_UPLOAD_SEARCH_FILE",
    "range":'{"page_from": "searchIndex"}'
}
r = requests.post(url,files=files)
print(r.json())

通过查看返回,点击链接进入到百度识图中
在这里插入图片描述
但是当我们点击进去后会发现浏览器好像放大了我们的页面一样,这是什么鬼?哪里出错误了吗?
在这里插入图片描述
原来是我们在填写数据的时候数据的格式写错了,有一些参数没有添加,我们要表示为None

# 每个value其实都是有2个参数,只是其中一个没有,那么如果我们不穿的话就会出现刚才的问题,这个是需要传None
files = {
    "tn":(None,"pc"),
    "image":("123.jpg",open('123.jpg','rb'),"image/jpeg"),
    "from":(None,"pc"),
    "image_source":(None,"PC_UPLOAD_SEARCH_FILE"),
    "range":(None,'{"page_from": "searchIndex"}')
}

通过修改后的链接,我们再一次取请求,查看这次的情况,发现是好的,突然感叹到python太强大了~~
在这里插入图片描述
通过一个小的例子,我们学习了如何通过requests发送from-data的数据类型,但是如果想要上传大文件,需要安装第3方库

如果感觉写的对您有帮助,可以右下角点击个关注哦~~点赞关注,不迷路。

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值