文章目录
whistle常用功能介绍
Whistle是一个功能强大的抓包工具,能够帮助开发者在开发和测试过程中捕获和分析网络请求。
可以灵活设置代理规则,修改请求响应数据,安装插件,满足不同的抓包需求。
平时使用较多的功能:
- 移动端页面调试。设置规则,将页面url 追加eruda,或开启weinre,可以在不修改页面代码的情况下,远程调试页面
https://www.xxx.com/page jsAppend://{load_eruda.js}
https://www.xxx.com/page weinre://debug
- mock测试,将响应修改为指定数据。可以快速查看页面效果。
- 延迟响应:某请求响应时间不同,可能引起异常问题,可以设置延迟响应时间,验证bug
https://www.xxx.com/page reqDelay://3000
4.websocket抓包,数据格式转换。可以配合插件使用,其他文章再详细介绍
开发whistle.savemongo背景
在接口/ui测试时,想将请求记录自动保存下来,利用保存的数据,后续可以开发多个功能
在测试过程中,可能使用的场景:
- 统计接口覆盖率
- 通过接口中的版本或日期字段,对比不同版本接口变化
- 在线上环境回归时,过滤是否有测试环境的接口
查询whistle官网以及相关github插件项目。有介绍如何开发插件以及不同类型的插件项目可以参考。但没有满足自己项目需要的插件,所以决定自己开发一个插件。
开发插件
参考项目whistle.autosave,该项目将数据保存本地文件。需要增加mongo数据库相关功能。
编写配置页面
引入mongoose连接数据库
处理请求响应数据
whistle提供处理请求响应的接口。将读取数据保存到数据库中
项目同步github
项目开发测试后,能正常连接保存数据库。将项目同步到个人github里
https://github.com/kkapro/whistle.savemongo
发布npm包
注册了npm账号,将项目发布到npm.通过命令可以直接安装
npm i -g whistle.savemongo
插件使用说明
安装插件
npm i -g whistle.savemongo
配置规则
www.xxx.com pipe://savemongo
规则匹配后,whistle会将请求记录保存到mongo数据库中,在mongodb中可以查看相关记录
表字段说明
字段 | 类型 | 说明 |
---|---|---|
id | String | whistle的请求唯一标识符 |
fullUrl | String | 完整URL |
method | String | HTTP请求方法 |
url | String | 请求的URL地址 |
protocol | String | 使用的协议(如HTTP或HTTPS) |
host | String | 请求的主机名 |
path | String | 请求的路径 |
headers | Object | HTTP请求头信息 |
res_body | Object | 响应体内容 |
res_headers | Object | 响应头信息 |
req | Object | 请求对象,包含请求相关的所有信息 |
req_body | Object | 请求体内容 |
req_params | Object | 请求参数 |
client_ip | String | 客户端IP地址 |
create_time | String | 创建时间 |