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入门指引
Apr 01 Python
python的keyword模块用法实例分析
Jun 30 Python
利用python程序帮大家清理windows垃圾
Jan 15 Python
python中pip的安装与使用教程
Aug 10 Python
Ubuntu+python将nii图像保存成png格式
Jul 18 Python
Flask框架学习笔记之使用Flask实现表单开发详解
Aug 12 Python
Django项目后台不挂断运行的方法
Aug 31 Python
Python实现新型冠状病毒传播模型及预测代码实例
Feb 05 Python
Django单元测试中Fixtures用法详解
Feb 25 Python
解决django无法访问本地static文件(js,css,img)网页里js,cs都加载不了
Apr 07 Python
Python3接口性能测试实例代码
Jun 20 Python
Python matplotlib安装以及实现简单曲线的绘制
Apr 26 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
Oracle Faq(Oracle的版本)
2006/10/09 PHP
关于Yii2框架跑脚本时内存泄漏问题的分析与解决
2019/12/01 PHP
Laravel等框架模型关联的可用性浅析
2019/12/15 PHP
基于PHP实现用户登录注册功能的详细教程
2020/08/04 PHP
添加到收藏夹代码(兼容几乎所有的浏览器)
2007/01/09 Javascript
锋利的jQuery jQuery中的DOM操作
2010/03/21 Javascript
菜鸟学习JavaScript小实验之函数引用
2010/11/17 Javascript
js对象的构造和继承实现代码
2010/12/05 Javascript
javascript制作坦克大战全纪录(2)
2014/11/27 Javascript
JS动态修改图片的URL(src)的方法
2015/04/01 Javascript
js图片翻书效果代码分享
2015/08/20 Javascript
Angular.js如何从PHP读取后台数据
2016/03/24 Javascript
基于Node.js的JavaScript项目构建工具gulp的使用教程
2016/05/20 Javascript
利用jQuery插件imgAreaSelect实现获得选择域的图像信息
2016/12/02 Javascript
JavaScript中正则表达式判断匹配规则及常用方法
2017/08/03 Javascript
详解Immutable及 React 中实践
2018/03/01 Javascript
js实现下拉框二级联动
2018/12/04 Javascript
vue实现分页栏效果
2019/06/28 Javascript
js实现3D照片墙效果
2019/10/28 Javascript
Vue 封装防刷新考试倒计时组件的实现
2020/06/05 Javascript
[02:04]2014DOTA2国际邀请赛 DK一个时代的落幕
2014/07/21 DOTA
Python list操作用法总结
2015/11/10 Python
Python保存MongoDB上的文件到本地的方法
2016/03/16 Python
用Python删除本地目录下某一时间点之前创建的所有文件的实例
2017/12/14 Python
Python lambda函数基本用法实例分析
2018/03/16 Python
Python实现FTP文件传输的实例
2019/07/07 Python
python多线程实现代码(模拟银行服务操作流程)
2020/01/13 Python
python实现数据结构中双向循环链表操作的示例
2020/10/09 Python
详解HTML5 录音的踩坑之旅
2017/12/26 HTML / CSS
澳大利亚优质葡萄酒专家:Vintage Cellars
2019/01/08 全球购物
新闻记者个人求职的自我评价
2013/11/28 职场文书
股票投资建议书
2014/05/19 职场文书
校园演讲稿汇总
2014/05/21 职场文书
中学生综合素质自我评价
2015/03/06 职场文书
庆祝教师节活动总结
2015/03/23 职场文书
银行文明优质服务培训心得体会
2016/01/09 职场文书