mitmproxy抓包 | Python实时生成接口自动化用例(三)
抓包工具mitmproxy环境配置使用(一)
抓包工具mitmproxy | mitmweb基本用法(二)
前面已经给大家分享了mitmproxy的环境配置和基本使用,文章浏览量很高,相信对抓包工具感兴趣的朋友,已经熟练运用起来了。
这期给大家分享下mitmproxy结合python脚本对抓包信息的(请求头、请求头、接口url、请求方式、响应头、响应体等)进行监控,实时抓取数据并存储到文件里,实现了接口自动化测试中的接口用例设计自动化,无需花费大量时间手动编写接口用例,大大提高了工作效率,相信很多人看到这里已经欣喜难耐了,一定要关注下方公众号,有更多精彩技术文章。
一、mitmproxy介绍
mitmproxy是Python编写的一款功能完善的代理工具,mitmproxy是一款支持拦截HTTP和HTTPS请求和响应并即时修改它们的交互式中间人代理工具。最强大之处在于对python脚步的支持,它提供了Python API给开发者编写插件用来自定义对流量进行处理和修改,可以在python代码中直接处理数据包。
二、mitmproxy的功能:
1、拦截HTTP和HTTPS请求和响应
2、保存HTTP会话并进行分析
3、模拟客户端发起请求,模拟服务器端返回响应
4、利用反向代理将流量转发给指定的服务器
5、支持Mac和linux上的透明代理
6、利用Python对HTTP请求与响应进行实时处理
三、环境
1、部署python环境
2、安装mitmproxy,pip install mitmproxy
mitmproxy提供了HTTP、WebSocket、TCP事件。本次只考虑HTTP事件,HTTP事件提供一些api,详情参考https://docs.mitmproxy.org/stable/addons-events/
四、启动web抓包,抓包信息全量存入文件
1、cmd下执行:
mitmweb -p 8889 -w C:\Users\la\Desktop\test.txt
启动抓包服务,实时抓取全量数据存入文件
2、自动打开web抓包页面
3、边抓包,边将抓包的全量信息实时存入文件
五、python脚本
编写python脚本,获取接口(请求头、请求头、接口url、请求方式、响应头、响应体等)需要的信息,脚本变更,保存后实时同步,无需重新启动抓包服务
import mitmproxy.http
import csv,jsonclass CaptureInfoWriteFile:def __init__(self):passdef request(self, flow: mitmproxy.http.HTTPFlow):flow_request = flow.request # 获取请求对象self.url = flow_request.url # 接口urlself.host = flow_request.host # 域名self.path = flow_request.path # 接口地址self.method = flow_request.method # 请求方式self.content = flow_request.contentself.timestamp_start = flow_request.timestamp_start # 请求开始时间戳self.timestamp_end = flow_request.timestamp_end # 请求结束时间戳self.header = flow_request.headers # 请求头self.text = flow_request.text # 请求体def response(self, flow: mitmproxy.http.HTTPFlow):flow_response = flow.response # 获取响应对象response_status_code = flow_response.status_code # 响应状态码response_text = flow_response.text # 响应体response_content = flow_response.contentresponse_timestamp_start = flow_response.timestamp_start # 响应开始时间response_timestamp_end = flow_response.timestamp_end # 响应结束时间response_header = flow_response.headers # 响应头with open(r'C:\Users\xia\Desktop\test15.csv', 'a+',newline='') as f:f_csv = csv.writer(f)f_csv.writerows([[self.url, self.host, self.path, self.method, self.header, self.text, response_status_code, response_header, response_text]])addons = [CaptureInfoWriteFile()]
六、启动web抓包,调用python脚本
1、cmd下执行:
mitmweb -p 8889 -s C:\Users\xia\Desktop\test_maplocal.py
启动抓包服务,实时监控获取抓包信息
2、自动打开web抓包页面
3、边抓包,边调用python脚本,将获取的抓包信息实时存储到文件里,方便接口自动测试使用
mitmproxy抓包 | Python实时生成接口自动化用例(三)相关推荐
- mitmproxy抓包 | Python实时生成接口自动化用例
抓包工具mitmproxy环境配置使用(一) 抓包工具mitmproxy | mitmweb基本用法(二) 前面已经给大家分享了mitmproxy的环境配置和基本使用,文章浏览量很高,相信对抓包工具感 ...
- mitmproxy抓包 | Python双篡改假请求实战(六)
往期回顾: 抓包工具mitmproxy环境配置使用(一) 抓包工具mitmproxy | mitmweb基本用法(二) mitmproxy抓包 | Python实时生成接口自动化用例(三) mitmp ...
- mitmproxy抓包 | Python篡改请求参数实战(五)
抓包工具mitmproxy环境配置使用(一) 抓包工具mitmproxy | mitmweb基本用法(二) mitmproxy抓包 | Python实时生成接口自动化用例(三) mitmproxy抓包 ...
- mitmproxy抓包 | Python疑难测试场景mock实战(四)
往期经典文章回顾: 抓包工具mitmproxy环境配置使用(一) 抓包工具mitmproxy | mitmweb基本用法(二) mitmproxy抓包 | Python实时生成接口自动化用例 mitm ...
- mitmproxy抓包 | Python疑难测试场景mock
往期经典文章回顾: 抓包工具mitmproxy环境配置使用(一) 抓包工具mitmproxy | mitmweb基本用法(二) mitmproxy抓包 | Python实时生成接口自动化用例 mitm ...
- 使用python编写一个完整的接口自动化用例
使用python编写一个完整的接口自动化用例 以聚合数据的 查询天气接口为例: import requestsclass HttpRequests: def __init__(self,url, pa ...
- 自动化测试用例设计原则(接口自动化用例设计的基本原则)
自动化测试用例设计原则: 1.一个脚本是一个完整的场景,从用户登陆操作到用户退出系统关闭浏览器. 2.一个脚本脚本只验证一个功能点,不要试图用户登陆系统后把所有的功能都进行验证再退出系统 3.尽量只做 ...
- python接口自动化用例管理_python接口自动化测试(六)-unittest-单个用例管理
前面五节主要介绍了环境搭建和requests库的使用,可以使用这些进行接口请求的发送.但是如何管理接口案例?返回结果如何自动校验?这些内容光靠上面五节是不行的,因此从本节开始我们引入python单元测 ...
- Jmeter使用之:高效组织接口自动化用例技巧
Jmeter怎么使用的文章多如牛毛,但怎么组织好测试用例,则几乎很难看到.在本文,我将把Jmeter下怎么组织测试用例的几点心得分享给大家,希望能给你一些帮助或启示. 1.善用"逻辑控制器& ...
最新文章
- nyoj19 全排列
- ISA Server 2006 安全保障指南
- 循环链表解决约瑟夫环问题
- 阐述html语言的理解,大学语文课后思考题答案
- 数据源管理 | 动态权限校验,表结构和数据迁移流程
- 判断两个数组有相同的数据
- 十九、动态加载脚本和样式
- 从最理想的情况论证自己的观点,必然错误,为什么明知故犯?
- 【图像去雾】基于matlab GUI直方图均衡化+Retinex理论图像去雾(带面板)【含Matlab源码 706期】
- 七款非常好用的电脑数据恢复软件推荐
- Linux看视频不卡的,Ubuntu 8.04下安装电视卡看电视
- php7isapi,Windows7 IIS7下以FastCgi和ISAPI方法安装配置PHP5教程
- Ubuntu触摸屏校准命令
- Volatile能不能保证线程安全?
- 物联网(工程师)+嵌入式学习路线图各个阶段
- 从看守到贴身保镖服务的安全纵深防御
- 【信息汇总】浙江大学计算机考研
- Android 高级UI解密 (三) :Canvas裁剪 与 二维、三维Camera几何变换(图层Layer原理)
- GitHub Desktop安装与使用教程
- 如何利用百度短链接接口将一个长链接变成短链接
热门文章
- java打印两个小人_[原创]Java画小人与阶梯问题的解答
- Xshell 的基本使用
- JVM——详解类加载过程
- oracle状态blocked,oracle 监听状态为BLOCKED
- mysql sql使用序列_SQL 使用序列
- python write 写多行_如何用 Python 执行单行命令
- 不愿意和别人打交道_始终和人保持距离,最不合群的3星座,孤僻却有真本事,能成大事...
- cout输出字符串_leetcode C++题解系列-042 字符串相乘
- 武汉理工大学计算机学院2018复试,武汉理工大学2018年自主招生复试揭秘
- 复合消隐信号的作用_南大《AFM》:可拉缩、粘合、导电的双信号柔性彩色薄膜...