python 抓包 上传 文件_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抓包代码_Python抓包并解析json爬虫的完整实例代码
Python抓包并解析json爬虫FwA免费资源网 在使用Python爬虫的时候,通过抓包url,打开url可能会遇见以下类似网址,打开后会出现类似这样的界面,无法继续进行爬虫:FwA免费资源网 Fw ...
- python 抓包解析数据_Python抓包并解析json爬虫的完整实例代码
Python抓包并解析json爬虫 在使用Python爬虫的时候,通过抓包url,打开url可能会遇见以下类似网址,打开后会出现类似这样的界面,无法继续进行爬虫: 例如: 需要爬取网页中第二页的数据时 ...
- 使用python抓包并分析后存入数据库,或直接分析tcpdump和wireshark抓到的包,并存入数据库
准备工作 抓包首先要用到scapy包 安装scapy包 pip install scapy 在python代码中引用scapy包 from scapy.all import * #为了省事,直接imp ...
- Python抓包练习-Linux
需要获取网络中的报文,可以保存为pcap而后读取分析,但是总觉得来回读写数据过于麻烦,不如直接获取报文分析.面向Google编程后,并结合实际的使用,总结如下: 使用python抓包,需要利用scap ...
- 【Python】Python抓包
Python抓包并分析获取请求头 依赖的包 抓包代码 分析代码 scapy中rdpcap分析 dpkt分析 全部代码 使用Python进行数据爬取时,很多情况下需要登录或需要某些Cookie,如果直接 ...
- Python抓包并解析json爬虫
Python抓包并解析json爬虫 在使用Python爬虫的时候,通过抓包url,打开url可能会遇见以下类似网址,打开后会出现类似这样的界面,无法继续进行爬虫: 例如: 需要爬取网页中第二页的数据时 ...
- python拦截数据包_httphttps,python抓包知多少
原标题:http&https,python抓包知多少 在有些情景下,需要拦截所有的http包和https数据包,http包很好抓,但是https包相对比较复杂,在此文章中,主要介绍http和h ...
- php上传图片 $__files没有信息_Python接口测试文件上传实例解析
接口测试中,上传文件的测试场景非常常见.例如:上传头像(图片).上传文件.上传视频等.下面以一个上传图片的例子为大家讲解如何通过 python 测试上传文件接口. 首先通过抓包分析上传文件接口的请求参 ...
- python selenium 下载文件_Python Selenium —— 文件上传、下载,其实很简单
很多selenium学习者被浏览器弹出的文件上传.下载框折磨的痛不欲生,今天博主就带你们轻松搞定上传和下载问题. 上传 上传弹框 文件上传是所有UI自动化测试都要面对的一个头疼问题,要处理这个问题,我 ...
最新文章
- 如何在网页中添加flash文件
- JavaScriptSerializer序列化和反序列化JSON:使用自定义JavaScriptConverter
- 死磕Java并发:J.U.C之阻塞队列:PriorityBlockingQueue
- 学习OGRE - 读取天龙八部scene文件
- 一个div 上下两行_纯CSS实现单一div的正多边形变换
- 如何将python项目部署到服务器_部署python项目到linux服务器
- Git提交到码云(转)
- java中_null和“”的区别详解
- 哪吒:猪八戒十年DevOps演进之路
- 关于OPENCV 访问外部传进来的Mat矩阵元素的问题
- StyleCop学习笔记——默认的规则
- 【TWVRP】基于matlab遗传算法和模拟退火求解带时间窗自行车调度问题【含Matlab源码 370期】
- 基于安卓手机的WAPI证书安装使用详解
- Android学习笔记-转载SQLite
- 2016 server win 假死_Windows 7假死的几个常见情况以及解决方法
- 计算机双工模式,windows10系统如何设置网络双工模式?
- 显卡驱动一定要更新吗?怎么更新显卡驱动?
- 怎么看自己的操作系统?
- 数电仿真实验-数字钟的设计
- 想要了解大厂PM吗,来看看这几款软件
热门文章
- 使用GetDIBts/SetDIBits高速逐点处理 from http://blog.sina.com.cn/s/blog_552ad2090100e3eu.html...
- [翻译] C# 3.0语言规范 收藏
- 介绍了如何取成员函数的地址以及调用该地址
- 使用XmlTextWriter生成XML文件的方法
- java8 例外网站_Java8兰巴达斯和例外
- mapper里面select id 后面一直红名_YTG晨晨改ID“进厂找班上了”,如此自嘲,心态还挺好...
- OpenGL中的Uniform block size 的大小限制
- Android开发之AlertDialog设置左右边距的间接办法
- Android开发之高仿三方授权登录的实现方案类似微信登录QQ登录微博登录人人网登录
- 春运12306的bug