说明:本文转载自:http://www./topics/43426request官方网站地址:https://www./requests/user/advanced.html#post-multiple-multipart-encoded-files前言滴滴滴! 今天聊聊接口自动化,遇到文件上传的接口怎么去测试。 近期也有不少的小伙伴在工作中遇到了文件上传的接口,表示不知道应该如何去传递文件上传的参数。 为了帮大家解决这个疑惑,我这边特地写了一个文件上传的接口,那么接下来我们结合这个接口给大家来讲讲解决方案。 接口说明
针对上面的接口文档简要的说明一下: 该接口需要四个参数,其中一个是用来接收上传的文件的,看上去和其他的接口并没有什么不一样的,返回的数据是json类型的; 关于文件上传接口,需要我们引起注意的一个地方就是: 请求参数类型都是Content-Type: multipart/form-data; 那么这种类型的参数,我们在发送请求的时候要特别注意!他 传参的方式和其他参数类型是不一样的。接下来我们分别使用postman和python来请求这个接口。 使用postman上传文件使用postman来上传文件,操作起来比较简单。 关于接口参数直接选择form-data这一栏进行填写就好了,要注意的点就是上传文件的参数,要选择文件类型,然后再对应参数值那一栏选择对应的文件即可,点击请求,服务器返回了上传成功的相关信息,详细操作如下图: 使用requests模块来上传前面我们已经成功的使用了postman来上传文件,那么我们在使用python去做接口自动化的时候,如何来解决这个文件上传的问题呢? 在python中关于发送http请求,我们通常都会使用requets模块,那么接下来我们就使用requests模块来上传文件。 requests模块发送post请求直接调用post方法就可以了,那么关于文件上传这里传参的时候要特别注意, requests传参类型:requests模块传参有四种方式:params、data,、json和files。接下来给大家详细讲解一下requests模块中这几种传参方式的区别。
上传文件的的接口参数的类型为content-type:multipart/form-data,那么我们使用requests来发送请求的时候,接口中文件上传的参数需要使用files来传递。files参数格式如下
文件上传的参数准备好了,那么接口中其他的参数怎么处理呢?其他的参数使用data传递即可。参数组织如下: # 其他的参数data = { 'nickname': '木森', 'age': 18, 'sex': '男',} 参数都准备好了,那么接下来就可以发送请求了,完整的请求代码如下: 1 ''' 2 ============================ 3 Author:柠檬班-木森 4 Time:2020/3/13 13:40 5 E-mail:3247119728@qq.com 6 Company:湖南零檬信息技术有限公司 7 ============================ 8 ''' 9 10 import requests11 12 # 如何请求文件上传的接口13 url = 'http://127.0.0.1:5000/upload'14 15 # 上传的文件参数16 files = {17 'pic': ('test01.gif', open('test01.gif', 'rb'), 'images/git')18 }19 # 其他的参数20 data = {21 'nickname': '木森',22 'age': 18,23 'sex': '男',24 }25 # 发送请求26 response = requests.post(url=url, files=files, data=data)27 # 打印结果28 print(response.json()) 运行以上代码,结果如下: { 'code': 1,
'data': { 'age': '18',
'datetime': 'Fri, 13 Mar 2020 10:32:24 GMT',
'filename': 'test01.gif',
'name': '木森',
'sex': '男'},
'msg': '文件上传成功,文件保存的地址为:http://127.0.0.1:5000/images/test01.gif'} PS:很神奇有木有,上传成功了,附上一张图 关于文件上传的接口就给大家聊到这里,如有其他问题,欢迎留言! |
|