whistle(读音[ˈwɪsəl],拼音[wēisǒu])基于Node实现的跨平台web调试代理工具,类似的工具有Windows平台上的Fiddler,主要用于查看、修改HTTP、HTTPS、Websocket的请求、响应,也可以作为HTTP代理服务器使用,不同于Fiddler通过断点修改请求响应的方式,whistle采用的是类似配置系统hosts的方式,一切操作都可以通过配置实现,支持域名、路径、正则表达式、通配符、通配路径等多种匹配方式,且可以通过Node模块扩展功能
文档。
安装
npm install -g whistle
运行
w2 start
去 http://127.0.0.1:8899/ 改配置。然后设置代理: http://127.0.0.1:8899/。
停止
w2 stop
常用配置
mock 某个具体接口
$http://xxx resBody:///Users/.../xx.json statusCode://200
- $ 开头表示精确匹配。
- resBody 是 mock 文件的绝对路径。
- 如果是个未上线的接口,要加: statusCode://200
mock 路径
# 路径支持正则。
^www.example.com/test/*** referer://http://www.test.com/$1
# 用文件替换返回
www.test.com/abc file://filpath // whistle会自动根据请求url后面剩余的路径跟filepath自动补全
# 或这么写
www.test.com/abc resBody:///Users/xx/Desktop/a.json statusCode://200
匹配请求方法
# 仅匹配 DELETE。includeFilter
url resBody://文件路径 statusCode://200 includeFilter://m:DELETE
# 不匹配 DELETE。excludeFilter
url resBody://文件路径 statusCode://200 excludeFilter://m:DELETE
# 支持正则
url resBody://文件路径 statusCode://200 includeFilter://m:/GET|POST/
匹配其他请求信息
- reqH:name=pattern:匹配请求头。
- resH:name=pattern:匹配响应头。
更多的匹配的模式见:这里。
安装 HTTPS 证书
代理 HTTTPS 的接口,需要装证书。具体见:这里。
移动端调试
log
whistle 的 log 规则主要用于调试远程页面特别是移动端页面,可以通过此规则把远程页面 console 打印的信息展示出来。
具体见:这里。
whistle.inspect
该whistle插件集成了 vConsole、eruda、mdebug 等用来在移动端页面上模拟Chrome开发者工具功能的模块,方便调试手机上的H5页面,只需简单配置即可随意切换 vConsole、eruda、mdebug。