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 自动提交和抓取网页
Jul 13 Python
python双向链表实现实例代码
Nov 21 Python
Python三元运算实现方法
Jan 12 Python
对于Python的框架中一些会话程序的管理
Apr 20 Python
python脚本实现xls(xlsx)转成csv
Apr 10 Python
Python可变参数用法实例分析
Apr 02 Python
Pandas读取并修改excel的示例代码
Feb 17 Python
Python数据类型之Dict字典实例详解
May 07 Python
python中几种自动微分库解析
Aug 29 Python
使用 Python 清理收藏夹里已失效的网站
Dec 03 Python
Python 读取WAV音频文件 画频谱的实例
Mar 14 Python
Python3内置函数chr和ord实现进制转换
Jun 05 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判断终端是手机还是电脑访问网站的思路及代码
2013/04/24 PHP
PHP防止post重复提交数据的简单例子
2014/06/07 PHP
utf8的编码算法 转载
2006/12/27 Javascript
提升你网站水平的jQuery插件集合推荐
2011/04/19 Javascript
用javascript模仿ie的自动完成类似自动完成功的表单
2012/12/12 Javascript
防止xss和sql注入:JS特殊字符过滤正则
2013/04/18 Javascript
深入理解javaScript中的事件驱动
2013/05/21 Javascript
jquery实现智能感知连接外网搜索
2013/05/21 Javascript
让angularjs支持浏览器自动填表
2014/11/10 Javascript
Javascript实现检测客户端类型代码封包
2015/12/03 Javascript
JavaScript实现设计模式中的单例模式的一些技巧总结
2016/05/17 Javascript
浅谈Javascript中的12种DOM节点类型
2016/08/19 Javascript
很棒的一组js图片轮播特效
2017/01/12 Javascript
微信小程序 生命周期和页面的生命周期详细介绍
2017/01/19 Javascript
JavaScript取得gridview中获取checkbox选中的值
2017/07/24 Javascript
nodejs文件夹深层复制功能
2019/09/03 NodeJs
使用pyecharts无法import Bar的解决方案
2020/04/23 Python
Python如何实现MySQL实例初始化详解
2017/11/06 Python
Python使用requests及BeautifulSoup构建爬虫实例代码
2018/01/24 Python
python微信跳一跳系列之棋子定位像素遍历
2018/02/26 Python
对numpy 数组和矩阵的乘法的进一步理解
2018/04/04 Python
正确理解Python中if __name__ == '__main__'
2019/01/24 Python
python实现数据分析与建模
2019/07/11 Python
Python实现TCP通信的示例代码
2019/09/09 Python
Python中关于logging模块的学习笔记
2020/06/03 Python
python 用struct模块解决黏包问题
2020/11/07 Python
乌克兰第一的珠宝网上商店:Gold.ua
2019/11/29 全球购物
财务会计专业毕业生自荐信
2013/10/19 职场文书
经济学博士求职自荐信范文
2013/11/23 职场文书
项目建议书范文
2014/05/12 职场文书
追悼会悼词大全
2015/06/23 职场文书
八年级历史教学反思
2016/02/19 职场文书
《鲁班学艺》读后感3篇
2019/11/27 职场文书
Mysql 如何批量插入数据
2021/04/06 MySQL
Python中Cookies导出某站用户数据的方法
2021/05/17 Python
讲解Python实例练习逆序输出字符串
2022/05/06 Python