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 可爱的大小写
Sep 06 Python
Python中字典和JSON互转操作实例
Jan 19 Python
Android 兼容性问题:java.lang.UnsupportedOperationException解决办法
Mar 19 Python
python中关于for循环的碎碎念
Jun 30 Python
Python数据分析之如何利用pandas查询数据示例代码
Sep 01 Python
Python中类的初始化特殊方法
Dec 01 Python
python树莓派红外反射传感器
Jan 21 Python
pandas 数据索引与选取的实现方法
Jun 21 Python
python列表推导式操作解析
Nov 26 Python
python实现文字版扫雷
Apr 24 Python
Python Opencv图像处理基本操作代码详解
Aug 31 Python
python上下文管理器异常问题解决方法
Feb 07 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
相对路径转化成绝对路径
2007/04/10 PHP
PHP连接局域网MYSQL数据库的简单实例
2013/08/26 PHP
php实现的click captcha点击验证码类实例
2014/09/23 PHP
PHP获取当前所在目录位置的方法
2014/11/26 PHP
深入理解PHP变量的值类型和引用类型
2015/10/21 PHP
修改WordPress中文章编辑器的样式的方法详解
2015/12/15 PHP
php实现微信扫码支付
2017/03/26 PHP
文本链接逐个出现的js脚本
2007/12/12 Javascript
jQuery中filter(),not(),split()使用方法
2010/07/06 Javascript
javascript动态改变img的src属性图片不显示的解决方法
2010/10/20 Javascript
在浏览器窗口上添加遮罩层的方法
2012/11/12 Javascript
jQuery基于ajax实现页面加载后检查用户登录状态的方法
2017/02/10 Javascript
jQuery阻止移动端遮罩层后页面滚动
2017/03/15 Javascript
使用canvas及js简单生成验证码方法
2017/04/02 Javascript
vue单页开发父子组件传值思路详解
2018/05/18 Javascript
Node.js笔记之process模块解读
2018/05/31 Javascript
axios向后台传递数组作为参数的方法
2018/08/11 Javascript
Element Input组件分析小结
2018/10/11 Javascript
Vue实现table上下移动功能示例
2019/02/21 Javascript
详解VUE调用本地json的使用方法
2019/05/15 Javascript
[02:34]肉山说——泡妞篇
2014/09/16 DOTA
Python的语言类型(详解)
2017/06/24 Python
在CentOS6上安装Python2.7的解决方法
2018/01/09 Python
儿童python练习实例
2018/05/27 Python
python得到qq句柄,并显示在前台的方法
2018/10/14 Python
python版DDOS攻击脚本
2019/06/12 Python
简单了解python调用其他脚本方法实例
2020/03/26 Python
浅谈matplotlib中FigureCanvasXAgg的用法
2020/06/16 Python
乐高西班牙官方商店:LEGO Shop ES
2019/12/01 全球购物
Python中pass语句的作用是什么
2016/06/01 面试题
高中军训感言200字
2014/02/23 职场文书
学习演讲稿范文
2014/05/10 职场文书
2014基建处领导班子“四风”对照检查材料思想汇报
2014/10/04 职场文书
财政局个人总结
2015/03/04 职场文书
MySQL里面的子查询的基本使用
2021/08/02 MySQL
SQL之各种join小结详细讲解
2021/08/04 MySQL