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程序设计入门(3)数组的使用
Jun 16 Python
python操作ssh实现服务器日志下载的方法
Jun 03 Python
Python对象类型及其运算方法(详解)
Jul 05 Python
python实现SOM算法
Feb 23 Python
Python3中正则模块re.compile、re.match及re.search函数用法详解
Jun 11 Python
对python for 文件指定行读写操作详解
Dec 29 Python
搞定这套Python爬虫面试题(面试会so easy)
Apr 03 Python
如何安装并使用conda指令管理python环境
Jul 10 Python
PyCharm License Activation激活码失效问题的解决方法(图文详解)
Mar 12 Python
Python参数传递机制传值和传引用原理详解
May 22 Python
Selenium结合BeautifulSoup4编写简单的python爬虫
Nov 06 Python
python+selenium实现12306模拟登录的步骤
Jan 21 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
在Win7 中为php扩展配置Xcache
2014/10/08 PHP
PHP采集静态页面并把页面css,img,js保存的方法
2014/12/23 PHP
深入理解PHP内核(二)之SAPI探究
2015/11/10 PHP
Yii隐藏URL中index.php的方法
2016/07/12 PHP
Ubuntu 16.04中Laravel5.4升级到5.6的步骤
2018/12/07 PHP
extJs 下拉框联动实现代码
2010/04/09 Javascript
JS跨域代码片段
2012/08/30 Javascript
div模拟选择框示例代码
2013/11/03 Javascript
Javascript中的delete操作符详细介绍
2014/06/06 Javascript
AngularJS实现textarea记录只能输入规定数量的字符并显示
2016/04/26 Javascript
JavaScript的变量声明提升问题浅析(Hoisting)
2016/11/30 Javascript
jQuery is not defined 错误原因与解决方法小结
2017/03/19 Javascript
基于vue-simplemde实现图片拖拽、粘贴功能
2018/04/12 Javascript
vue如何使用async、await实现同步请求
2019/12/09 Javascript
JavaScript函数Call、Apply原理实例解析
2020/02/17 Javascript
javascript使用Blob对象实现的下载文件操作示例
2020/04/18 Javascript
JS检测浏览器开发者工具是否打开的方法详解
2020/10/02 Javascript
[06:24]DOTA2亚洲邀请赛小组赛第三日 TOP10精彩集锦
2015/02/01 DOTA
[02:32]【DOTA2亚洲邀请赛】iceice,梦开始的地方
2017/03/13 DOTA
使用Python多线程爬虫爬取电影天堂资源
2016/09/23 Python
Python实现读取TXT文件数据并存进内置数据库SQLite3的方法
2017/08/08 Python
python实现音乐下载器
2018/04/15 Python
解决Tensorflow使用pip安装后没有model目录的问题
2018/06/13 Python
Python实现将Excel转换成xml的方法示例
2018/08/25 Python
python内置数据类型之列表操作
2018/11/12 Python
Flask框架学习笔记之表单基础介绍与表单提交方式
2019/08/12 Python
Python利用Scrapy框架爬取豆瓣电影示例
2020/01/17 Python
如何真正的了解python装饰器
2020/08/14 Python
Python关于拓扑排序知识点讲解
2021/01/04 Python
python wsgiref源码解析
2021/02/06 Python
使用Python制作一盏 3D 花灯喜迎元宵佳节
2021/02/26 Python
canvas 绘图时位置偏离的问题解决
2020/09/16 HTML / CSS
可以使用抽象函数重写基类中的虚函数吗
2013/06/02 面试题
电气工程及其自动化自我评价四篇
2013/09/24 职场文书
旅游与酒店管理专业求职信
2014/07/21 职场文书
环境科学专业求职信
2014/08/04 职场文书