说明:本⽂转载⾃:
request官⽅⽹站地址: 前⾔
滴滴滴! 今天聊聊接⼝⾃动化,遇到⽂件上传的接⼝怎么去测试。
近期也有不少的⼩伙伴在⼯作中遇到了⽂件上传的接⼝,表⽰不知道应该如何去传递⽂件上传的参数。
为了帮⼤家解决这个疑惑,我这边特地写了⼀个⽂件上传的接⼝,那么接下来我们结合这个接⼝给⼤家来讲讲解决⽅案。
接⼝说明
接⼝地址:(注:⽼师⾃⼰写的⼀个接⼝,运⾏在本地)请求⽅法:POST
请求类型:Content-Type: multipart/form-data;响应类型: Content-Type:application/json接⼝⼊参
参数名agesexpic
参数类型intstring
说明⽤户昵称年龄性别
nicknamestring
file(⽂件)上传的⽂件
出参(返回值)
字段名类型codedatamsg
intobj
相关的数据信息
说明
业务码(1代表上传成功,0代码上传失败)
string相关的描述信息
返回参考⽰例:
{
\"code\": 1, \"data\": {
\"age\": \"456\
\"datetime\": \"Thu, 12 Mar 2020 16:22:57 GMT\ \"filename\": \"handle_sign.py\ \"name\": \"123\ \"sex\": \"男\" },
\"msg\": \"⽂件上传成功,⽂件保存的地址为:http://127.0.0.1:5000/images/handle_sign.py\"}
针对上⾯的接⼝⽂档简要的说明⼀下:
该接⼝需要四个参数,其中⼀个是⽤来接收上传的⽂件的,看上去和其他的接⼝并没有什么不⼀样的,返回的数据是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模块中这⼏种传参⽅式的区别。
parmas: 传递查询字符串参数(常⽤于get请求)
data: 传递表单类型的参数(参数类型为:Content-Type:application/x-www-form-urlencoded)json: 传递json类型的参数(参数类型为:Content-Type:application/json)files: ⽤于上传⽂件(参数类型: content-type:multipart/form-data;)
上传⽂件的的接⼝参数的类型为content-type:multipart/form-data,那么我们使⽤requests来发送请求的时候,接⼝中⽂件上传的参数需要使⽤files来传递。files参数格式如下
# fiels为字典类型数据,上传的⽂件为键值对的形式,参数名作为键,
# 参数值是⼀个元组,内容为以下格式(⽂件名,打开的⽂件流,⽂件类型)files = {
\"pic\": (\"test01.gif\}
# 注意点:除了上传的⽂件,接⼝其他参数不能放⼊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:很神奇有⽊有,上传成功了,附上⼀张图
关于⽂件上传的接⼝就给⼤家聊到这⾥,如有其他问题,欢迎留⾔!
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- haog.cn 版权所有 赣ICP备2024042798号-2
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务