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

启动抓包服务,实时抓取全量数据存入文件

2a43dc76a490e2bdfdb3d8b7df303f53.png

2、自动打开web抓包页面

a5343c16063528630b1326a6ca4f14e7.png

3、边抓包,边将抓包的全量信息实时存入文件

2f91daa75cd5661be6fe945f288fc0cf.png

五、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

启动抓包服务,实时监控获取抓包信息

e82a8e41fd2522912efe1bd6bf6f6b21.png

2、自动打开web抓包页面

5498a99648edce5aef55a341a65e8af6.png

3、边抓包,边调用python脚本,将获取的抓包信息实时存储到文件里,方便接口自动测试使用

d7e3091951623f920030381989e1059d.png

909542760f8207cd97e64a7ef804400e.png

764fc50b2872695c93a6f30ea4217bc0.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/568164.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

To disable deprecation,,use _CRT_SECURE_NO_WARNINGS

解决方法:ok,也就是加入一个_CRT_SECURE_NO_WARNINGS的问题。 转载自https://blog.csdn.net/guoming0000/article/details/8838810 或者在cpp文件最顶端添加:#define _CRT_SECURE_NO_WARNINGS

测试管理 | 基于风险的测试

基于风险的测试风险是指负面或不希望发生的后果或事件发生的可能性。当引起客户、用户、参与者或干系人对产品质量或项目成功的信心减弱的问题可能发生时,风险就存在。当潜在问题主要影响的是产品质量时,它们被称为质量风险、产品风险或产品质量风险。而…

听说全链路压测已经杀疯了?劝你别盲目!

不知道大家发现没,阿里、京东、字节、美团、饿了么、滴滴、陌陌等大厂的技术文章里,最近频繁提到全链路压测在企业内部的落地。本想抱着拜读一二的心理去看,结果一旦涉及到具体的落地细节,他们却都跟约好了一样三缄其口。不怪我眼…

opencv Hog Demo

需注意此代码要在Release x64之下运行 #include <iostream> #include <stdexcept> #include <opencv2/objdetect.hpp> #include <opencv2/highgui.hpp> #include <opencv2/imgproc.hpp> #include <opencv2/imgcodecs.hpp> //Release x64…

图像分类 数据准备(将文件夹中所有图片路径写到TXT文件中)

0文件夹里都是负样本&#xff0c;1文件夹的图像都是正样本图片&#xff0c;接下来就是生成图片的描述文件。 进入控制台 进入你的0/1文件夹下&#xff0c;输入以下命令&#xff1a; dir /b/s/p/w *.jpg > pos.txt&#xff0c;dir /b/s/p/w *.jpg > neg.txt&#xff0c;…

瀑布、V、W、快速原型模型、增量、螺旋模型

瀑布模型&#xff08;Waterfall Model&#xff09; 是最早出现的软件开发模型&#xff0c;它提供了软件开发的基本框架&#xff0c;开发过程是通过设计一系列阶段顺序展开的&#xff0c;从系统需求分析开始直到产品发布和维护&#xff0c;每个阶段都会产生循环反馈&#xff0c;…

opencv Hog学习总结

一、方向梯度 梯度&#xff1a;在向量微积分中&#xff0c;标量场的梯度是一个向量场。标量场中某一点上的梯度指向标量场增长最快的方向&#xff0c;梯度的长度是这个最大的变化率。更严格的说&#xff0c;从欧几里得空间Rn到R的函数的梯度是在Rn某一点最佳的线性近似。在这个…

深入浅出理解HOG特征---梯度方向直方图

梯度方向直方图 原文路径&#xff1a;https://www.learnopencv.com/histogram-of-oriented-gradients/ 最近在搞车牌识别的时候&#xff0c;训练样本去识别车牌的时候用到HOG特征。国外一篇文章让我受益良多 什么是特征描述符&#xff1f; 特征描述符是指通过提取有用的信息并…

陕西居民医保微信缴纳教程来了,太方便了

2022年居民医保交费步骤如下&#xff1a;1、进入微信&#xff0c;我的页面&#xff0c;点支付进入—点城市服务2、城市服务页面&#xff0c;顶部可切换所在城市&#xff0c;输入框搜索“陕西省社保”&#xff0c;选第一个 “陕西省社保缴纳”进入3、选城乡居民医疗保险&#xf…

SVM理论学习记忆

转载自https://blog.csdn.net/chaipp0607/article/details/73662441 SVM算法在在1995年正式发表&#xff0c;在针对中小型数据规模的分类任务上有着卓越的效果&#xff0c;同时有着完整的理论证明&#xff0c;在20世纪末的几年和21世纪初的10年完胜神经网络&#xff0c;吴恩达…

Python中jmespath解析提取json数据

在做接口自动化&#xff0c;测试断言时&#xff0c;我们经常需要提取接口的的响应数据字段&#xff0c;以前用过jsonpath&#xff0c;有几篇相关文章&#xff0c;可以参考下&#xff08;Python深层解析json数据之JsonPath、【Jmeter篇】后置处理器之正则提取器、Json提取器 、J…

SVM学习记录

第一个min&#xff1a;先在数据中找离决策边界距离最近的样本点 第二个max&#xff1a;寻找w和b使得刚才找到的点离决策边界最远的平面&#xff08;平面方程&#xff1a;&#xff09; 求解出后即可求出w和b。 例如&#xff1a; 如果等于0.根据上面的公式&#xff0c;得到w就为…

缺陷定位 | 测试发现了Bug,还要分析定位Bug?(一)

hello今天分享的内容&#xff0c;可能会有很多朋友持不同观点&#xff0c;或被很多同行朋友diss&#xff0c;不过没关系&#xff0c;即使被喷被diss&#xff0c;我依然会坚持我的观点&#xff0c;把最真实的干货分享给大家&#xff0c;希望得到支持。测试工程师在互联网行业里&…

opencv glob 内存溢出异常

先贴代码(非常简单的代码&#xff09; #include "opencv2/imgproc.hpp" #include "opencv2/highgui.hpp" #include "opencv2/ml.hpp" #include "opencv2/objdetect.hpp" #include <iostream> #include <time.h> using na…

白盒测试 | 用例设计方法之条件组合覆盖

往期关联文章回顾&#xff1a;白盒测试 | 用例设计方法之条件覆盖白盒测试 | 用例设计方法之判定覆盖白盒测试 | 用例设计方法之语句覆盖条件组合覆盖&#xff1a;列出所有判定条件中可能的取值组合&#xff0c;使得每个判定条件结果的所有可能组合至少出现一次程序流程图&…

npm安装教程

一、使用之前&#xff0c;我们先来掌握3个东西是用来干什么的。 npm: Nodejs下的包管理器。 webpack: 它主要的用途是通过CommonJS的语法把所有浏览器端需要发布的静态资源做相应的准备&#xff0c;比如资源的合并和打包。 vue-cli: 用户生成Vue工程模板。&#xff08;帮你快…

测试管理 | 测试经理定义和实施测试度量

往期关联文章回顾&#xff1a;瀑布、V、W、快速原型模型、增量、螺旋模型测试管理 | 4种优先级排序方法一定要掌握测试管理 | 基于风险的测试管理上有这样一句名言&#xff0c;进行度量的工作才会得到有效的执行。反之&#xff0c;因为很容易忽略那些不进行度量的工作&#xff…

Python核心场景自动化测试项目实战(二)

往期关联文章回顾&#xff1a;PytestAllureJenkins接口自动化项目实战&#xff08;一&#xff09;【Python篇】核心场景接口自动化方案&#xff08;一&#xff09;以前我们用pythonunittestHTMLTestRunnerjenkins结合实际项目写过一个核心场景自动化测试&#xff0c;也在实际工…