首页 > 编程知识 正文

http抓包实战,api mock

时间:2023-05-04 15:48:19 阅读:23405 作者:981

文章目录21-3接口mock实战1 ) 课程粘贴CHARLES安装配置功能下载安装移动端代理配置1实战内容CHARLES安装配置图表分析界面黑客原理CHARLES场景界面分析实战练习过滤重发请求弱网测试中断4单板滑雪app抓取器和mock实战内容参考资料1(Charlesmock实战mock元理和实用场景应用场景mock核心要素rewritemaplocalmapremotemapremote实战2 ) mitmproxy安装环境验证证书设置移动实战核心工具介绍MITMDUMP参数介绍核心组件MOCK原理演示map local rewrite启动脚本课后练习

21-3接口mock实战1 )课程贴

https://ceshi ren.com/t/topic/12400

CHARLES安装配置功能支持SSL代理、流量控制和网络请求重发。 支持后端调试,支持网络请求参数更改,支持网络请求侦听和动态更改。 CHARLES官网: https://www.charlesproxy.com/

移动代理配置1 1.设备和电脑位于同一wifi2上2 .移动网络配置服务器ip寻址端口3 .安装证书系统浏览器访问chls.pro/ssliOS :配置式中的证书iOS

charles官网: https://www.charles proxy.com/6 win 10系统Charles证书安装: https://blog.csdn.net/weixin _ 43291944/article

将charles设置为系统代理(在捕捉电脑数据时设置) ) ) )。

3 .安装本地证书

入口

windows配置过程参考文章

mac配置

选择“始终信任”4 .设置SSL

入口

设置规则

5 .安装移动端包

确保远程开关已打开

进入移动端证书安装提示弹匣

检查本地ip地址和charles监听的端口

移动端配置网络

证书安装:在浏览器中键入chls.pro/ssl将自动下载。 单击下载的证书后,将自动安装

从charles飞出的弹匣选择了allow

箱包分析界面箱包原理

charles使用场景1 .移动端测试中:显示接口数据,轻松识别错误

2 .在接口测试中,比较分析接口请求失败的原因

curl命令进行代理

使用curl命令获取请求信息curl---- proxy http://127.0.0.133608080

3.mock测试: mock模拟接口返回的数据接口分析

在实战过滤练习(直接输入过滤关键字Focus )界面上单击鼠标右键,选择Focus并重新发送简单的重发)选择界面(鼠标右键(-Repeat的简单重发)

更改请求选择界面鼠标右键compose

弱网测试入口

设置

中断点的设定方法

入口

配置课后练习charles,安装证书。 2 .练习课小范例21-4雪球app抓取与mock实战课程贴: https://ceshi ren.com/t/topic/12496

ppt类

https://pdf.ceshiren.com/xly4/滑雪APP接球和mock的实战

实战内容参考资料mitmproxy官网: https://mitmproxy.org/环境切换演练环境前端http://stuq.ceshi ren.com :8081/#/maplocal开发环境接口3358 stuq.ceshi ren.com 3338 show map local测试环境接口http://stuq.ceshi ren.com :9098/report/show map 实用场景APP应用场景与第三方系统数据交互前后的数据交互硬件设备解耦的优点是不依赖于第三方数据,节约工作量,调整APP应用场景

MOCK核心元素匹配规则:决定修改那些接口的哪些数据进行仿真响应:篡改匹配规则对应的内容,遵循案例仿真所需的响应内容rewrite原理

配置url

设置

方法

Tools → Rewrite勾选 Enable点击下方 Add 按钮新建规则在右侧制定重写规则点击 ok 生效

使用场景

动态修改响应数据 map local

原理

操作步骤

准备本地的接口响应数据配置 MapLocal Map From :填写要匹配的接口信息MapTo:选择本地文件

应用场景

大部分的修改响应数据推荐使用 map remote

原理

MAP REMOTE 实战 访问百度,转发至豆瓣访问开发环境,转发至测试环境 前端:http://stuq.ceshiren.com:8081/#/mapLocal开发环境接口:http://stuq.ceshiren.com:8089/report/showMapLocal测试环境接口:http://stuq.ceshiren.com:9098/report/showMapLocal

操作步骤

选择接口,鼠标右键,选择 Map Remote,进入到设置界面填写接口信息

3.点击 ok 生效

应用场景

切换不同的测试环境 2)mitmproxy 安装配置 安装 python 环境:3.8mitmproxy 版本:5.2.0

优先用第一种方式

pip install mitmproxy==5.2.0

第二种

pip install pipxpipx install mitmproxy==5.2.0 环境验证 mitmdump --version 证书配置 启动 mitmdump 工具配置网络代理
浏览器中访问 mitm.it 配置证书选择对应的系统下载证书安装(安装过程同 charles) 移动端证书 在手机配置代理,ip 配置为电脑的 ip 地址,端口配置为 mitmproxy 监听端口,默认 8080。启动 mitmprxy。在手机浏览器输入地址 mitm.it。选择 Android,下载并安装,即可成功抓取手机端的 https 的数据包。 MITMPROXY MOCK 实战 核心工具介绍

三大核心工具

mitmproxy 注意:不支持 windows mitmwebmitmdump

备注:主要以 mitmdump 的使用为主

MITMDUMP 参数介绍 -s 参数,执行 python 脚本-p 参数,指定监听端口,默认监听8080 核心组件

Addons(插件)
https://docs.mitmproxy.org/stable/addons-overview/

编写一个python文件供给mitmproxy加载,文件中定义addons列表,列表中调用定义的类的实例,在发请求时出,调用request方法

Events(事件)
https://docs.mitmproxy.org/stable/addons-events/

mock 原理


demo



map local

map local 百度

from mitmproxy import http# request 名称不能修改def request(flow: http.HTTPFlow) -> None: # 发起请求,判断 url 是不是需要进行 maplocal 的路径 if flow.request.pretty_url == "https://www.baidu.com/": # 自己创建一个 response flow.response = http.HTTPResponse.make( 200, # 响应状态码 b"Hello World", # 响应体 {"Content-Type": "text/html"} # 响应头信息 )

map local 雪球

from mitmproxy import http# request 名称不能修改def request(flow: http.HTTPFlow) -> None: # 确定 mock 的接口条件 if "quote.json" in flow.request.pretty_url and "x=" in flow.request.pretty_url: # 打开保存在本地数据文件 with open("/Users/mac/Desktop/quote.json") as f: flow.response = http.HTTPResponse.make( 200, # 响应状态码 # 响应体 f.read(), # 修改响应头信息 {"Content-Type": "application/json"} ) rewrite import jsonfrom mitmproxy import httpdef response(flow: http.HTTPFlow): # 确定 mock 的接口条件 if "quote.json" in flow.request.pretty_url and "x=" in flow.request.pretty_url: # 拿到响应数据,转换为字典格式,保存到 data 变量中 data = json.loads(flow.response.content)# json.loads()=>将字符串转换为字典结构 # 修改第一支股票的名称 data['data']['items'][0]['quote']['name'] = "hogwarts" data['data']['items'][1]['quote']['name'] = "hogwarts0000002" data['data']['items'][1]['quote']['current'] = "0.01" # 把字符串格式的内容赋值给 response 的原始数据格式 flow.response.text = json.dumps(data)



启动脚本 mitmdump -p 监听端口 -s python文件路径 课后练习 用 Charles MapLocal 修改雪球行情页的股票名称改为自己的名字用 Charles Rewrite 实现股票颜色变换的的边界值测试

提交设置界面和效果的截图

其他 https默认端口443http默认端口80 正则表达式修改信息
正则匹配
d+.d+

d 数字
+不管一位还是多位数字

修改头信息

增加请求信息

map remote 切换环境

map local

map remote

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。