whistle(读音[ˈwɪsəl],拼音[wēisǒu])基于Node实现的跨平台web调试代理工具,类似的工具有Windows平台上的Fiddler,主要用于查看、修改HTTP、HTTPS、Websocket的请求、响应,也可以作为HTTP代理服务器使用,不同于Fiddler通过断点修改请求响应的方式,whistle采用的是类似配置系统hosts的方式,一切操作都可以通过配置实现,支持域名、路径、正则表达式、通配符、通配路径等多种匹配方式,且可以通过Node模块扩展功能

文档

安装

  1. npm install -g whistle

运行

  1. w2 start

http://127.0.0.1:8899/ 改配置。然后设置代理: http://127.0.0.1:8899/

停止

  1. w2 stop

常用配置

mock 某个具体接口

  1. $http://xxx resBody:///Users/.../xx.json statusCode://200
  • $ 开头表示精确匹配。
  • resBody 是 mock 文件的绝对路径。
  • 如果是个未上线的接口,要加: statusCode://200

mock 路径

  1. # 路径支持正则。
  2. ^www.example.com/test/*** referer://http://www.test.com/$1
  3. # 用文件替换返回
  4. www.test.com/abc file://filpath // whistle会自动根据请求url后面剩余的路径跟filepath自动补全
  5. # 或这么写
  6. www.test.com/abc resBody:///Users/xx/Desktop/a.json statusCode://200

匹配请求方法

  1. # 仅匹配 DELETE。includeFilter
  2. url resBody://文件路径 statusCode://200 includeFilter://m:DELETE
  3. # 不匹配 DELETE。excludeFilter
  4. url resBody://文件路径 statusCode://200 excludeFilter://m:DELETE
  5. # 支持正则
  6. 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。