Python接口测试文件上传实例解析


Posted in Python onMay 22, 2020

接口测试中,上传文件的测试场景非常常见。例如:上传头像(图片)、上传文件、上传视频等。下面以一个上传图片的例子为大家讲解如何通过 python 测试上传文件接口。

首先通过抓包分析上传文件接口的请求参数:

Python接口测试文件上传实例解析

下面是上传文件接口脚本。把目标文件以open打开,然后存储到变量file。并且使用files参数指明请求的参数名称、上传文件的类型、以及上传文件的路径。

Python接口测试文件上传实例解析

这里注意:content-type参数,如果我们通过form-data的方式上传文件,我们发送post请求的时候,headers这个参数中一定不能要包括这个值,,requests库会帮忙添加这个元素,加了可能会报错。

代码实现:

import requests
from utils.LogUtil import my_log
from faker import Faker
log=my_log()
faker = Faker('zh_CN')


class marketCreate():


  def loginToken(self,mobile,code):
    '''
    登陆、注册接口
    :param mobile: 手机号
    :param code:  验证码
    :return:
    '''
    url='http://api.xxxxxx.net/v1/user/loginOrRegister'   #登陆接口请求地址
    headers={'Content-Type': 'application/json'}      #请求头信息,json数据类型
    json={"code":code,"deviceId":"5de548ad0e268bc0","deviceName":"HWNXT","mobile":mobile,"mobilePrefix":"63","version":"39"}   #请求数据
    r=requests.post(url,headers=headers,json=json) #发送请求
    token=r.json()['data']['userVO']['token']    #获取token
    log.info('手机号'+mobile+'的token值为:'+token) #打印日志
    return token                  #将token返回出去

  def uploadimages(self,mobile,file_path,filename):
    '''
    上传图片接口
    :param mobile:   手机号
    :param file_path:  文件路径
    :param filename:  文件名称
    :return:
    '''
    token = self.loginToken(mobile=mobile, code='789789')    #请求登陆接口,获取token
    url='http://api.xxxxxx.net/v1/upload/images'        #上传文件接口请求地址
    headers={'token': token}   #请求头信息关联token。不需要赋值Content-Type,requests库会帮忙添加这个元素,加了可能会报错。
    file_data={'file':(filename,open(file_path,'rb'),'image/jpeg')} #重点:上传文件请求数据。
    r=requests.post(url=url,headers=headers,files=file_data)    #发送请求
    print(r.json())   #打印响应结果

if __name__ == '__main__':
  m=marketCreate()
  # 测试,输入手机号、文件地址、文件名称信息;
  m.uploadimages(mobile='639266558329',file_path='D:\pyCharm_work\cmkjProject\data\market.jpg',filename='123456.jpg')

执行结果:

C:\Python38\python.exe D:/pyCharm_work/cmkjProject/page/marketPage.py
2020-01-02 13:48:09,580-D:\pyCharm_work\cmkjProject\utils\LogUtil.py-INFO-手机号639266558329的token值为:ba9b4f622fa4d6461523870c0d00df46
{'code': 0, 'data': '/group1/M00/00/00/rBDKPF4NhE-ABIFmAAGhT9tm-NA158.jpg', 'success': True}

Process finished with exit code 0

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python脚本监控docker容器
Apr 27 Python
win系统下为Python3.5安装flask-mongoengine 库
Dec 20 Python
git使用.gitignore设置不生效或不起作用问题的解决方法
Jun 01 Python
基于Python中单例模式的几种实现方式及优化详解
Jan 09 Python
Python实现识别手写数字大纲
Jan 29 Python
Python字典及字典基本操作方法详解
Jan 30 Python
详解Django项目中模板标签及模板的继承与引用(网站中快速布置广告)
Mar 27 Python
python创建属于自己的单词词库 便于背单词
Jul 30 Python
python用quad、dblquad实现一维二维积分的实例详解
Nov 20 Python
Django 解决model 反向引用中的related_name问题
May 19 Python
celery在python爬虫中定时操作实例讲解
Nov 27 Python
Python爬虫进阶之Beautiful Soup库详解
Apr 29 Python
计算Python Numpy向量之间的欧氏距离实例
May 22 #Python
python numpy矩阵信息说明,shape,size,dtype
May 22 #Python
python查看矩阵的行列号以及维数方式
May 22 #Python
30行Python代码实现高分辨率图像导航的方法
May 22 #Python
Python3 Tensorlfow:增加或者减小矩阵维度的实现
May 22 #Python
Python pandas如何向excel添加数据
May 22 #Python
python3.8.1+selenium实现登录滑块验证功能
May 22 #Python
You might like
PHP操作文件类的函数代码(文件和文件夹创建,复制,移动和删除)
2011/11/10 PHP
php导出word文档与excel电子表格的简单示例代码
2014/03/08 PHP
ThinkPHP学习笔记(一)ThinkPHP部署
2014/06/22 PHP
php查找字符串出现次数的方法
2014/12/01 PHP
PHP实现递归无限级分类
2015/10/22 PHP
Yii中表单用法实例详解
2016/01/05 PHP
PHP编程快速实现数组去重的方法详解
2017/07/22 PHP
PHP数据源架构模式之表入口模式实例分析
2020/01/23 PHP
PHP7创建COOKIE和销毁COOKIE的实例方法
2020/02/03 PHP
javascript英文日期(有时间)选择器
2007/05/02 Javascript
JavaScript脚本语言在网页中的简单应用
2007/05/13 Javascript
JS创建优美的页面滑动块效果 - Glider.js
2007/09/27 Javascript
本地对象Array的原型扩展实现代码
2010/12/04 Javascript
JavaScript将取代AppleScript?
2014/09/18 Javascript
JS+CSS实现类似QQ好友及黑名单效果的树型菜单
2015/09/22 Javascript
jquery ztree异步搜索(搜叶子)实践
2016/02/25 Javascript
jQuery插件echarts实现的去掉X轴、Y轴和网格线效果示例【附demo源码下载】
2017/03/04 Javascript
fetch 如何实现请求数据
2018/12/20 Javascript
[47:04]EG vs RNG 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/18 DOTA
python创建线程示例
2014/05/06 Python
浅谈django model的get和filter方法的区别(必看篇)
2017/05/23 Python
Python标准库inspect的具体使用方法
2017/12/06 Python
Python使用numpy模块创建数组操作示例
2018/06/20 Python
Python实现多级目录压缩与解压文件的方法
2018/09/01 Python
Python 监测文件是否更新的方法
2019/06/10 Python
python+opencv像素的加减和加权操作的实现
2019/07/14 Python
详解python statistics模块及函数用法
2019/10/27 Python
python字符串的拼接方法总结
2019/11/18 Python
Python基于当前时间批量创建文件
2020/05/07 Python
keras 使用Lambda 快速新建层 添加多个参数操作
2020/06/10 Python
python 制作网站筛选工具(附源码)
2021/01/21 Python
美国高品质个性化珠宝销售网站:Jewlr
2018/05/03 全球购物
《狮子和兔子》教学反思
2014/03/02 职场文书
年会邀请函范文
2015/01/30 职场文书
幼儿园辞职信范文
2015/02/27 职场文书
2015国庆节宣传语
2015/07/14 职场文书