接口测试中,上传文件的测试场景非常常见。例如:上传头像(图片)、上传文件、上传视频等。下面以一个上传图片的例子为大家讲解如何通过 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']    #获取tokenlog.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')    #请求登陆接口,获取tokenurl='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_workcmkjProjectdatamarket.jpg',filename='123456.jpg')

执行结果:

C:Python38python.exe D:/pyCharm_work/cmkjProject/page/marketPage.py
2020-01-02 13:48:09,580-D:pyCharm_workcmkjProjectutilsLogUtil.py-INFO-手机号639266558329的token值为:ba9b4f622fa4d6461523870c0d00df46
{'code': 0, 'data': '/group1/M00/00/00/rBDKPF4NhE-ABIFmAAGhT9tm-NA158.jpg', 'success': True}Process finished with exit code 0

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

php上传图片 $__files没有信息_Python接口测试文件上传实例解析相关推荐

  1. python 抓包 上传 文件_Python接口测试文件上传实例解析

    接口测试中,上传文件的测试场景非常常见.例如:上传头像(图片).上传文件.上传视频等.下面以一个上传图片的例子为大家讲解如何通过 python 测试上传文件接口. 首先通过抓包分析上传文件接口的请求参 ...

  2. php文件上传详解,PHP文件上传实例详解!!!

    这篇文章主要介绍了PHP文件上传实例代码,需要的朋友可以参考下 首先来看下上传部分的表单代码: 文件:  这里有几个要注意的地方,首先看这句 ,这里我们采用POST方法,个别浏览器还支持PUT方法,当 ...

  3. php中file对象实例,AJAX_File, FileReader 和 Ajax 文件上传实例分析(php),File FileReader 可以干什么? Ajax - phpStudy...

    File, FileReader 和 Ajax 文件上传实例分析(php) File FileReader 可以干什么?Ajax文件上传例子 FileReader 对象可以读取文件的 Base64编码 ...

  4. springboot 上传文件解析入库_springboot实现文件上传步骤解析

    这篇文章主要介绍了springboot实现文件上传步骤解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 第一步编写上传的前段页面 data-tar ...

  5. WAF网页应用防火墙详解(设计思路-防御恶意文件上传实例-厂商防御技术-Imperva WAF部分特色功能了解)

    定义:Web防火墙,主要是对Web特有入侵方式的加强防护,如DDOS防护.SQL注入.XML注入.XSS等.由于是应用层而非网络层的入侵,从技术角度都应该称为Web IPS,而不是Web防火墙.这里之 ...

  6. java 图片上传_java web图片上传和文件上传实例

    本篇文章主要介绍了java web图片上传和文件上传实例,具有一定的参考价值,有需要的可以了解一下. 图片上传和文件上传本质上是一样的,图片本身也是文件.文件上传就是将图片上传到服务器,方式虽然有很多 ...

  7. SpringBoot+Mysql+MDUI实现数据的增删改查和列表操作及单,多文件上传实例

    SpringBoot+Mysql+MDUI实现数据的增删改查和列表操作及单,多文件上传实例 开源地址:https://gitee.com/jfkjrym/demo.git evan原创内容!evan原 ...

  8. 用Python+Mysql+MDUI实现的数据库增删改查列表操作及单,多文件上传实例

    用Python+Mysql+MDUI实现的数据库增删改查列表操作及单,多文件上传实例.web服务用flask框架,数据库操作用的pymysql框架.教程在我B站有的. 开源地址:https://git ...

  9. python selenium 下载文件_Python Selenium —— 文件上传、下载,其实很简单

    很多selenium学习者被浏览器弹出的文件上传.下载框折磨的痛不欲生,今天博主就带你们轻松搞定上传和下载问题. 上传 上传弹框 文件上传是所有UI自动化测试都要面对的一个头疼问题,要处理这个问题,我 ...

最新文章

  1. html 样式的几种实现方法
  2. Python 常用 PEP8 编码规范和建议
  3. uestc 250 windy数(数位dp)
  4. 认识 Linux 系统结构
  5. sql学习笔记---公用表达式(CTE)
  6. 【计算机网络复习 数据链路层】3.4.2 停止-等待协议
  7. oracle 01304,关于ORA-01034和ORA-27101的解决方法
  8. c++new时赋初值_优质 quot;嵌入式C编程quot; 必备指南
  9. strus2中配置jqgrid入门
  10. python计算凸包并绘制凸包曲线
  11. 用python生成九九乘法表的指令_Python中生成九九乘法表的方法有哪几种?
  12. Python3 捕捉异常
  13. Android 手机成监控:仍在“逃亡”的斯诺登开发了款反间谍应用
  14. 进阶05 常用数据结构
  15. win10系统安装postgresql后无法连接
  16. Javascript高级程序设计第四版详细测评
  17. Caused by: java.lang.NoSuchMethodException: init [class android.content.Context, interface andr解决
  18. 3亿流量还能让Keep错几次?
  19. shotcut添加字幕
  20. 计算机编程的好处,青少年学习编程的好处有哪些?

热门文章

  1. PCL中outofcore模块---基于核外八叉树的大规模点云的显示
  2. 点云python-pcl
  3. 设置WebStorm查看本地源码文件个人修改的历史记录快捷键Alt+Shift+H、Ctrl+Shift+H(通常用于调试bug,发现文件出问题需要回溯到若干天之前)
  4. vue下轻松解决模拟微信视频缩略图拖拽→吸附窗口边界的功能
  5. 在Ubuntu 14.04 64bit中永久添加DNS的方法
  6. Ubuntu 12.04 64位上安装Wine QQ2013
  7. weiss数据结构和算法书的使用说明
  8. 藤摇椅游戏道具制作全流程讲解视频教程
  9. 通过 RDTSC 指令从 CPU 寄存器中直接获取系统时钟
  10. 【转】通过Hibernate将数据 存入oracle数据库例子