使用whistle抓包实战
Posted IT界的测试混子
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用whistle抓包实战相关的知识,希望对你有一定的参考价值。
使用whistle抓包实战
官方文档
安装
需要先安装node.js
npm install -g whistle
启动
w2 restart
浏览器挂上代理,开始抓包
● 使用switchyomega,新建情景模式,设置代理
switchyomega下载 https://proxy-switchyomega.com/download/
● 启用whsitle代理
● 抓到包啦
设置https抓包
● 输入
w2 ca
● 弹出正式信任设置,信任次操作
● 点击Https->勾选Capture Tunnel CONNECTs
● 浏览器访问百度,输入whilstle
● 设置过滤信息。抓到了https包啦
使用whistle mock数据
案例:雪球抓包(因为它可以抓到https的请求。感谢雪球)
找一个方便观察的接口,就这个吧。热股榜
https://stock.xueqiu.com/v5/stock/hot_stock/list.json?
mock接口返回的status code
● Rules中增加一个规则如下
https://stock.xueqiu.com/v5/stock/hot_stock/list.json replaceStatus://500
● 刷新雪球的页面,热榜这一块没有数据啦。并且接口返回的status code为500
● 实际上,请求的结果是正常返回的。只是返回给前端的statusCode被修改了。
方便用来测试一些异常的状态码,前端给出的反应是否合理等。例如一些需要等待的过程,如果接口报错了,一直卡在加载中,就不太友好啦。
更多详情查看官网:
http://wproxy.org/whistle/rules/replaceStatus.html
mock接口返回值response
resMerge
修改响应类型为application/json或text/javascript的响应内容,其功能是通过resMerge://jsonData指定的JSON对象覆盖响应内容里面的JSON对象。
配置方式:
pattern resMerge://filepath
● 设置规则
https://stock.xueqiu.com/v5/stock/hot_stock/list.json resMerge://hot_stock_api.json
● copy接口的返回值。在values中添加一个hot_stock_api.json,把接口返回的json粘贴在此处,修改其中的字段。例如修改第一个tiems中的 name、value。保存
● 刷新雪球页面。mock成功啦。
● 也可以这样配置
https://stock.xueqiu.com/v5/stock/hot_stock/list.json resMerge://(data=&error_code=0&error_description="hhhh")
● 刷新页面。查看接口返回
在我需要测试一些异常的数据,例如金额很大、很小的情况下,就可以用mock的方式来构造数据看前端的展示情况啦。
resMerge://后面也可以放一个本地的路径。如果需要构造很多数据的时候,也可以构造一个多数据的json,引用本地的json文件。
更多详情查看官网:
http://wproxy.org/whistle/rules/resMerge.html
使用whistle 设置弱网
resDelay
设置延迟响应的时间(单位:毫秒),配置方式:
pattern resDelay://timeMS
● 设置规则
https://stock.xueqiu.com/v5/stock/hot_stock/list.json resDelay://2000
● 刷新看雪球的页面
resSpeed
设置响应速度(单位:kb/s,千比特/每秒),配置方式:
pattern resSpeed://kbs
● 设置规则
https://stock.xueqiu.com/v5/stock/hot_stock/list.json resSpeed://1
● 刷新页面
resDelay可以帮我们设置时间的延迟,resSpeed可以帮我们设置每秒返回的kbs。同样可以帮助我们模拟,弱网状态下,前端的一些反应状态。
更多详情可以查看官网:
http://wproxy.org/whistle/rules/resSpeed.html
http://wproxy.org/whistle/rules/resDelay.html
proxy代理设置。把请求转发到vpn
● 在rules中设置规则,把所有请求转发到vpn端口
● 访问一下google试试,输入pytest,搜索
● 查看抓包信息。哦吼,抓到啦
● 如果我们把这条规则注释掉会怎么样?
● 当然是访问不了google啦
如果是公司代理,设置规则转发到公司的代理上。再尝试访问公司的内部网站,看能不能访问到。
更多代理设置可以查看官网:
http://wproxy.org/whistle/rules/proxy.html
愉快抓包把。
使用whistle重发请求–Compose请求重发
● 选中一条请求,点击Compose
● 修改请求参数,重新发送请求
● 重新发送请求成功
当我们需要传一些异常的数据,前端做了限制,无法输入,我们也可以使用Compose来重新构造发送请求。
当然工具的使用有一定的局限性。例如,请求参数加密的情况下,我们需要额外把参数加密之后再传过去。
如果你有兴趣,可以看看官网的插件开发。自己开发一个插件来支持这种功能。
以上是关于使用whistle抓包实战的主要内容,如果未能解决你的问题,请参考以下文章