Whistle 是一个基于 Node.js 的跨平台抓包调试代理工具。它不仅支持 HTTP 和 HTTPS 请求的截获和修改,还支持 WebSocket、TCP 等多种协议。通过简单的配置,开发者可以轻松实现流量监控、数据篡改、请求转发、Mock 数据等功能。
whistle | finddler | charles | |
---|---|---|---|
跨平台 | 支持 | 不支持macos | 支持 |
实践难度 | 简单 | 中等 | 中等 |
付费 | 否 | 否 | 是 |
产品设计 | 网页 | 客户端 | 客户端 |
说明文档 | 中文 | 英文 | 中文 |
开源 | 是 | 否 | 否 |
npm install -g whistle
whistle stop
whistle start
whistle restart
若是指定端口号把对应的关键内容替换即可 比如w2 start -p 8003 -> w2 stop -p 8003
安装完后进入计算机设置界面编辑下自己的代理
或者在控制面板编辑局域网内的代理,二种效果是一样的。
设置ca证书 ,配置如图,一图胜千言
谷歌:
安装brower专用插件-switchomega
https://chromewebstore.google.com/detail/proxy-switchyomega/padekgcemlokbadohgkifijomclgjgif
配置代理服务器、端口号如下 这个插件这里就不多介绍:
火狐:
地址栏:about:preferences
然后找到相关设置 设置自己的代理
手机扫码安装ca证书
安装证书成功后,手机设置该主机的ip地址
可以实时监控所有通过代理的网络流量,包括请求和响应的详细信息
可以根据配置规则将请求转发到指定的服务器,实现接口代理和调试功能
在监控这里 我们本地访问baidu.com 自动转发请求到了qq.com
如果没有本地开发环境,智研平台提供mock接口服务:
创建好mock规则后,我们在postman上试试结果
可以看到,请求转发 调试成功了。
我们在测试页面或者接口 不同的返回码表示不同的效果,为了模拟这些极端情况,如果需要后端修改代强制返回后,服务还需要部署,这样测试是比较低效的,我们可以在本地直接设置接口的状态码的返回,达到测试效果。
前端需要调用后端的api接口,这时可以伪造返回的结果来模拟后端的数据
接口请求原先结果
相信大家在用postman 鉴权需要更新 或者 H5本地登录经常需要扫码 的情况,
我们可以通过这种方式,直接免修改登录
确认请求头鉴权信息,我把鉴权信息去掉了,请求提示未知的登录用户
1.在管理界面“Values”选项卡中添加内容
2.配置转发 xxx.com reqHeaders://{header}
3.请求成功,返回接口相关提示
应用启动后,短时间内客户端多个接口频繁请求服务器但部分失败进行重试机制的相关case
或
模拟请求超时 页面的是如何处理这种异常情况的
1. 设置接口的延迟数 xx.com reDelay://1000 延迟一秒
2.最终延迟时间= 接口本身请求耗时+ 延迟时间,按需调整
启用强制中断功能,超过了2s就会网络超时
reqDelay://2000 enable://abort
请求错误或者请求超时的情况下,看看系统能否在异常情况正确处理
注意!!!
请求转发和重定向存在 处理方式、目的 的不同:
重定向:将请求转发到其他url 通过其他服务器代理 缓存 管理,会经过3xx的响应码和一个新的url
请求转发:将请求转发到另一个url ,客户端只发送一个请求给服务器处理,处理结果返回给客户端
1.打开"Rules"选项卡,编辑规则 添加域名 redirect:// 重定向地址
2.查看结果
体验网络差的情况下,系统的表现,从而发现一些问题,
实际的网络环境和网络延迟可能会有所不同,可能需要调整参数
1.打开选项卡"Rules", 设置 域名、resSpeed://单位kb/s
2.查看结果
对于我们常用的流量,我们可以设定不同的样式标记 我个人比较喜欢绿色,认为是在工具内最好看的颜色
1.打开选项卡”Rules“ 添加规则
https://test.mapugc.tencent.com style://color=@fff&fontStyle=italic&bgColor=green
参数说明:
color = 简化的颜色代码表示法 或者 16进制的颜色代码表示法
fontStyle=字体风格
bgColor=背景色
Whistle 是一个功能强大、灵活性高、扩展性好的抓包工具,其多协议支持、灵活配置和良好的性能表现,使其在众多抓包工具中脱颖而出。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。