抓包工具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实时生成接口自动化用例(三)相关推荐

  1. mitmproxy抓包 | Python实时生成接口自动化用例

    抓包工具mitmproxy环境配置使用(一) 抓包工具mitmproxy | mitmweb基本用法(二) 前面已经给大家分享了mitmproxy的环境配置和基本使用,文章浏览量很高,相信对抓包工具感 ...

  2. mitmproxy抓包 | Python双篡改假请求实战(六)

    往期回顾: 抓包工具mitmproxy环境配置使用(一) 抓包工具mitmproxy | mitmweb基本用法(二) mitmproxy抓包 | Python实时生成接口自动化用例(三) mitmp ...

  3. mitmproxy抓包 | Python篡改请求参数实战(五)

    抓包工具mitmproxy环境配置使用(一) 抓包工具mitmproxy | mitmweb基本用法(二) mitmproxy抓包 | Python实时生成接口自动化用例(三) mitmproxy抓包 ...

  4. mitmproxy抓包 | Python疑难测试场景mock实战(四)

    往期经典文章回顾: 抓包工具mitmproxy环境配置使用(一) 抓包工具mitmproxy | mitmweb基本用法(二) mitmproxy抓包 | Python实时生成接口自动化用例 mitm ...

  5. mitmproxy抓包 | Python疑难测试场景mock

    往期经典文章回顾: 抓包工具mitmproxy环境配置使用(一) 抓包工具mitmproxy | mitmweb基本用法(二) mitmproxy抓包 | Python实时生成接口自动化用例 mitm ...

  6. 使用python编写一个完整的接口自动化用例

    使用python编写一个完整的接口自动化用例 以聚合数据的 查询天气接口为例: import requestsclass HttpRequests: def __init__(self,url, pa ...

  7. 自动化测试用例设计原则(接口自动化用例设计的基本原则)

    自动化测试用例设计原则: 1.一个脚本是一个完整的场景,从用户登陆操作到用户退出系统关闭浏览器. 2.一个脚本脚本只验证一个功能点,不要试图用户登陆系统后把所有的功能都进行验证再退出系统 3.尽量只做 ...

  8. python接口自动化用例管理_python接口自动化测试(六)-unittest-单个用例管理

    前面五节主要介绍了环境搭建和requests库的使用,可以使用这些进行接口请求的发送.但是如何管理接口案例?返回结果如何自动校验?这些内容光靠上面五节是不行的,因此从本节开始我们引入python单元测 ...

  9. Jmeter使用之:高效组织接口自动化用例技巧

    Jmeter怎么使用的文章多如牛毛,但怎么组织好测试用例,则几乎很难看到.在本文,我将把Jmeter下怎么组织测试用例的几点心得分享给大家,希望能给你一些帮助或启示. 1.善用"逻辑控制器& ...

最新文章

  1. nyoj19 全排列
  2. ISA Server 2006 安全保障指南
  3. 循环链表解决约瑟夫环问题
  4. 阐述html语言的理解,大学语文课后思考题答案
  5. 数据源管理 | 动态权限校验,表结构和数据迁移流程
  6. 判断两个数组有相同的数据
  7. 十九、动态加载脚本和样式
  8. 从最理想的情况论证自己的观点,必然错误,为什么明知故犯?
  9. 【图像去雾】基于matlab GUI直方图均衡化+Retinex理论图像去雾(带面板)【含Matlab源码 706期】
  10. 七款非常好用的电脑数据恢复软件推荐
  11. Linux看视频不卡的,Ubuntu 8.04下安装电视卡看电视
  12. php7isapi,Windows7 IIS7下以FastCgi和ISAPI方法安装配置PHP5教程
  13. Ubuntu触摸屏校准命令
  14. Volatile能不能保证线程安全?
  15. 物联网(工程师)+嵌入式学习路线图各个阶段
  16. 从看守到贴身保镖服务的安全纵深防御
  17. 【信息汇总】浙江大学计算机考研
  18. Android 高级UI解密 (三) :Canvas裁剪 与 二维、三维Camera几何变换(图层Layer原理)
  19. GitHub Desktop安装与使用教程
  20. 如何利用百度短链接接口将一个长链接变成短链接

热门文章

  1. java打印两个小人_[原创]Java画小人与阶梯问题的解答
  2. Xshell 的基本使用
  3. JVM——详解类加载过程
  4. oracle状态blocked,oracle 监听状态为BLOCKED
  5. mysql sql使用序列_SQL 使用序列
  6. python write 写多行_如何用 Python 执行单行命令
  7. 不愿意和别人打交道_始终和人保持距离,最不合群的3星座,孤僻却有真本事,能成大事...
  8. cout输出字符串_leetcode C++题解系列-042 字符串相乘
  9. 武汉理工大学计算机学院2018复试,武汉理工大学2018年自主招生复试揭秘
  10. 复合消隐信号的作用_南大《AFM》:可拉缩、粘合、导电的双信号柔性彩色薄膜...