Python接口测试文件上传实例解析

 更新时间:2020年05月22日 15:07:51   作者:深圳阿张  
这篇文章主要介绍了Python接口测试文件上传实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

接口测试中,上传文件的测试场景非常常见。例如:上传头像(图片)、上传文件、上传视频等。下面以一个上传图片的例子为大家讲解如何通过 python 测试上传文件接口。

首先通过抓包分析上传文件接口的请求参数:


下面是上传文件接口脚本。把目标文件以open打开,然后存储到变量file。并且使用files参数指明请求的参数名称、上传文件的类型、以及上传文件的路径。


这里注意: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编写函数注意事项总结

    在本篇文章里小编给大家分享了一篇关于python编写函数注意事项总结内容,有需要的朋友们可以学习下。
    2021-03-03
  • Python3.5 + sklearn利用SVM自动识别字母验证码方法示例

    Python3.5 + sklearn利用SVM自动识别字母验证码方法示例

    这篇文章主要给大家介绍了关于Python3.5 + sklearn利用SVM自动识别字母验证码的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Python具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-05-05
  • PyCharm关闭碍眼的波浪线图文详解

    PyCharm关闭碍眼的波浪线图文详解

    这篇文章主要介绍了PyCharm关闭碍眼的波浪线的实现,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-03-03
  • Python干货实战之八音符酱小游戏全过程详解

    Python干货实战之八音符酱小游戏全过程详解

    读万卷书不如行万里路,只学书上的理论是远远不够的,只有在实战中才能获得能力的提升,本篇文章手把手带你用Python实现一个八音符酱小游戏,大家可以在过程中查缺补漏,提升水平
    2021-10-10
  • Python实现可视化CSV文件中的数据

    Python实现可视化CSV文件中的数据

    CSV文件包含许多记录,数据分布在各行和各列中,在这篇文章中,小编主要为大家详细介绍了Python如何实现可视化CSV文件中的数据,感兴趣的小伙伴可以跟随小编一起学习一下
    2023-11-11
  • 火遍全网的Python二次元特效轻松掌握

    火遍全网的Python二次元特效轻松掌握

    本篇文章介绍了用python编写的二次元特效变化小程序,详细介绍了整个思路和过程以及代码,通读本篇对大家的学习或工作具有一定的价值,需要的朋友可以参考下
    2021-09-09
  • windows下python安装pip方法详解

    windows下python安装pip方法详解

    这篇文章主要介绍了windows下python安装pip方法详解,需要的朋友可以参考下
    2020-02-02
  • Python的CGIHTTPServer交互实现详解

    Python的CGIHTTPServer交互实现详解

    本篇文章主要给大家详细分析了Python的CGIHTTPServer交互实现过程以及相关代码分享,有兴趣的参考学习下。
    2018-02-02
  • 关于Python函数的定义和参数

    关于Python函数的定义和参数

    这篇文章主要介绍了关于Python函数的定义和参数,Python中的函数我们可以理解成是一种具有功能的包装块,也就是封装具有某一种功能的代码块,需要的朋友可以参考下
    2023-04-04
  • Pycharm添加虚拟解释器报错问题解决方案

    Pycharm添加虚拟解释器报错问题解决方案

    这篇文章主要介绍了Pycharm添加虚拟解释器报错问题解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-10-10

最新评论