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 中__name__ = '__main__' 的作用
Jul 05 Python
实例讲解Python中SocketServer模块处理网络请求的用法
Jun 28 Python
Python切换pip安装源的方法详解
Nov 18 Python
Python正则表达式常用函数总结
Jun 24 Python
浅谈Python中range和xrange的区别
Dec 20 Python
浅谈python脚本设置运行参数的方法
Dec 03 Python
对python3 sort sorted 函数的应用详解
Jun 27 Python
python简单实现矩阵的乘,加,转置和逆运算示例
Jul 10 Python
python 生成器和迭代器的原理解析
Oct 12 Python
Python无头爬虫下载文件的实现
Apr 02 Python
python中Tkinter 窗口之输入框和文本框的实现
Apr 12 Python
写好Python代码的几条重要技巧
May 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
关于ob_get_contents(),ob_end_clean(),ob_start(),的具体用法详解
2013/06/24 PHP
PHP图片处理之图片背景、画布操作
2014/11/19 PHP
php目录遍历函数opendir用法实例
2014/11/20 PHP
php中文字符串截取多种方法汇总
2016/10/06 PHP
PHP多种序列化/反序列化的方法详解
2017/06/23 PHP
redis+php实现微博(一)注册与登录功能详解
2019/09/23 PHP
javascript cookie解码函数(兼容ff)
2008/03/17 Javascript
JavaScript淡入淡出渐变简单实例
2015/08/06 Javascript
AngularJS 路由和模板实例及路由地址简化方法(必看)
2016/06/24 Javascript
又一款js时钟!transform实现时钟效果
2016/08/15 Javascript
JQuery实现图片轮播效果
2017/05/08 jQuery
vue v-on监听事件详解
2017/05/17 Javascript
jQuery实现鼠标响应式透明度渐变动画效果示例
2018/02/13 jQuery
JavaScript学习笔记之基于定时器实现图片无缝滚动功能详解
2019/01/09 Javascript
React中阻止事件冒泡的问题详析
2019/04/12 Javascript
vue列表单项展开收缩功能之this.$refs的详解
2019/05/05 Javascript
了解Javascript中函数作为对象的魅力
2019/06/19 Javascript
Python中decorator使用实例
2015/04/14 Python
Window10+Python3.5安装opencv的教程推荐
2018/04/02 Python
解决Pandas的DataFrame输出截断和省略的问题
2019/02/08 Python
Python3最长回文子串算法示例
2019/03/04 Python
python爬虫爬取微博评论案例详解
2019/03/27 Python
详解pandas DataFrame的查询方法(loc,iloc,at,iat,ix的用法和区别)
2019/08/02 Python
Python 使用元类type创建类对象常见应用详解
2019/10/17 Python
关于python 的legend图例,参数使用说明
2020/04/17 Python
Python机器学习工具scikit-learn的使用笔记
2021/01/28 Python
基于CSS3实现立方体自转效果
2016/03/01 HTML / CSS
基于HTML5新特性Mutation Observer实现编辑器的撤销和回退操作
2016/01/11 HTML / CSS
大学生护理专业自荐信
2013/10/03 职场文书
第二批党的群众路线教育实践活动个人整改方案
2014/10/31 职场文书
厉行节约工作总结
2015/08/12 职场文书
2019年最新七夕唯美祝福语(60条)
2019/07/22 职场文书
教你如何使用Python下载B站视频的详细教程
2021/04/29 Python
浅谈Java父子类加载顺序
2021/08/04 Java/Android
从QQtabBar看css命名规范BEM的详细介绍
2021/08/07 HTML / CSS
POST提交数据常见的四种方式
2022/01/18 HTML / CSS