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提取html文件中的特定数据的实现代码
Mar 24 Python
简述Python中的进程、线程、协程
Mar 18 Python
Python程序中设置HTTP代理
Nov 06 Python
python使用itchat实现手机控制电脑
Feb 22 Python
python assert的用处示例详解
Apr 01 Python
Django命名URL和反向解析URL实现解析
Aug 09 Python
Python3 pandas 操作列表实例详解
Sep 23 Python
使用pandas的box_plot去除异常值
Dec 10 Python
python 通过文件夹导入包的操作
Jun 01 Python
python实现在列表中查找某个元素的下标示例
Nov 16 Python
浅谈Python响应式类库RxPy
Jun 14 Python
Python 发送SMTP邮件的简单教程
Jun 24 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新手上路(十三)
2006/10/09 PHP
PHP开启opcache提升代码性能
2015/04/26 PHP
Centos 6.5下PHP 5.3安装ffmpeg扩展的步骤详解
2017/03/02 PHP
thinkphp 5框架实现登陆,登出及session登陆状态检测功能示例
2019/10/10 PHP
使用JS操作页面表格,元素的一些技巧
2007/02/02 Javascript
htm调用JS代码
2007/03/15 Javascript
28个JS验证函数收集
2010/03/02 Javascript
jQuery + Flex 通过拖拽方式动态改变图片的代码
2011/08/03 Javascript
在Linux上用forever实现Node.js项目自启动
2014/07/09 Javascript
JS使用for循环遍历Table的所有单元格内容
2014/08/21 Javascript
javascript中数组的定义及使用实例
2015/01/21 Javascript
JavaScript实现向OL列表内动态添加LI元素的方法
2015/03/21 Javascript
JQuery datepicker 用法详解
2015/12/25 Javascript
Bootstrap CSS布局之表格
2016/12/17 Javascript
Angular动态添加、删除输入框并计算值实例代码
2017/03/29 Javascript
jQuery实现全选、反选和不选功能
2017/08/16 jQuery
webpack项目调试以及独立打包配置文件的方法
2018/02/28 Javascript
vue2中使用less简易教程
2018/03/27 Javascript
微信小程序iBeacon测距及稳定程序的实现解析
2019/07/31 Javascript
JS自定义右键菜单实现代码解析
2020/07/16 Javascript
vue.js封装switch开关组件的操作
2020/10/26 Javascript
Nuxt的路由配置和参数传递方式
2020/11/06 Javascript
python中的字典详细介绍
2014/09/18 Python
Python调用微信公众平台接口操作示例
2017/07/08 Python
selenium在执行phantomjs的API并获取执行结果的方法
2018/12/17 Python
python 并发编程 多路复用IO模型详解
2019/08/20 Python
Django xadmin开启搜索功能的实现
2019/11/15 Python
Python读入mnist二进制图像文件并显示实例
2020/04/24 Python
应聘销售主管的求职信
2014/04/26 职场文书
设计专业自荐信
2014/06/19 职场文书
语文教师个人工作总结
2015/02/06 职场文书
盲山观后感
2015/06/11 职场文书
2015年秋季灭鼠工作总结
2015/07/27 职场文书
物业公司管理制度
2015/08/05 职场文书
2016年“我们的节日·重阳节”主题活动总结
2016/04/01 职场文书
使用CSS实现黑白格背景效果
2022/06/01 HTML / CSS