一、Whistle安装、配置及启动
1、安装Node.js
Whistle是基于Node实现的,Node.js官网:Node.js
2、安装Whistle
不同用户安装详情:安装启动 · GitBook
打开cmd.exe,通过npm进行安装,安装命令:npm install -g whistle
3、启动Whistle:w2 start
启动成功界面:
通过访问本地端口访问whistle Web控制台:http://127.0.0.1:8899/
Whistle常用命令:
启动:w2 start
重启:w2 restart
关闭:w2 stop
4、配置浏览器代理(推荐)
whistle 是通过代理服务来进行工作的,因此需要给请求客户端配置 whistle 的代理,代理地址即 whistle 的监听地址(默认为 http://127.0.0.1:8899/ )
推荐使用SwitchyOmega浏览(适用chrome、firefox)器插件,在浏览器安装扩展程序后,配置代理服务器为whistle地址,并将浏览器请求切换为whistle代理。
SwitchyOmega - 情景模式
可以根据需求新增所需的模式,比如上面的whistle模式,使用的时候,可以选择某一个单独的情景模式,也可以选择auto switch
auto switch:可同时支持多个规则,编写完规则后点击【应用选项】,即可使用
浏览器访问切换为whistle模式或者默认为whistle的auto switch后,此时浏览器发出的请求就会被whistle抓取
5、抓取 HTTPS 请求
1)下载whistle证书 & 开启HTTPS 请求抓取
whistle 控制台 —> 【HTTPS】 —> 【Download RootCA】,进行证书下载,
勾选【Capture TUNNEL CONNECTs】进行HTTPS 请求抓取
2)信任whistle配置
下载whistle证书 —> 安装证书 —> 证书存储(受信任的根证书颁发机构),确定完成即可
3)验证抓取 HTTPS 请求
6、移动端调试
移动端调试时,whistle和移动端需在同一个局域网内,且移动端设置whistle的代理。
IOS:
whistle 控制台 —> 【HTTPS】扫描二维码,下载证书,
Android :
whistle 控制台 —> 【HTTPS】扫描二维码,下载证书,去设置中进行安装
二、实例演练:
修改请求方法
pattern:域名或者路径
Rules规则:
pattern method://newMethod
newMethod:不区分大小写
修改请求头Header
1)Rules规则:
pattern reqHeaders://{newHeader}
2)newHeader为引用的values 变量
3)发起请求后,查看whistle抓包请求对应的Header改变,如图所示:
改变前:
改变后:
修改请求体:
1)Rules规则:
pattern reqBody://{req_body}
2)req_body为引用的values 变量
延迟请求(ms)
Rules规则:
pattern reqDelay://time
Example:
baidu.com reqDelay://60000
请求速度(kb/s)
Rules规则:
pattern reqSpeed://kbs
Example:
baidu.com reqSpeed://256
修改响应状态码
两个方法:
1)Rules规则:
pattern replaceStatus://code
说明:使用 replaceStatus 继续进行请求,并对响应的状态码进行替换;
修改状态码后,whistle及浏览器均显示为修改后的状态码
2)Rules规则:
pattern statusCode://code
说明:使用 statusCode 后不再发送请求,直接返回设置的状态码。
修改返回参数
1)Rules规则:
/pattern/ rawfile://{response}
2)response为引用的values 变量
如果报文头出现:content-encoding: gzip,则需要去掉
请求替换
Rules规则中配置模式如下:
pattern http://host:port/xxx
Example:
https://jd.com https://baidu.com/
jd.com baidu.com
www.js www.kk.js
禁用请求的缓存,只要经过代理且匹配到的请求都不会使用缓存
注:跟 cache 协议的区别是,cache 只是用来设置响应的缓存头
pattern disable://cache
绑定host
注:相当于浏览器层的host文件,如果找不到再去查找本机的host文件
ip pattern
Example:
127.0.0.1 baidu.com
转换http协议
注:转发协议+域名转发,轻松本地模拟 https ,访问线上的 https 域名实际上指向的是本地的 http 调试地址
pattern http://localhost:port
Example:
https://baidu.com http://localhost:8080
mock数据
whistle 提供了一个强大的 mock 数据的插件,可以结合 js 语句 + mock 语法去生成数据
mock语法详解:https://github.com/nuysoft/Mock/wiki/Syntax-Specification
注:数据模板定义中的属性名|生成规则、属性值都需要使用双引号,"name|rule"
1)安装插件:
npm i -g whistle.vase
2) Plugins 菜单:
打开 【vase】的界面,新建一个mock数据的配置,并选择模板Engine: mock
结果展示:文章来源:https://www.toymoban.com/news/detail-419963.html
文章来源地址https://www.toymoban.com/news/detail-419963.html
到了这里,关于Whistle安装及使用指南的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!