最近在看大佬的《HTTP抓包实战》,全篇非常的通俗易懂,每篇的篇幅也比较小,插图很多,很容易理解,推荐买一本(不要像我一样看免费的电子档,大佬是花了很多心血的),其中前半部分讲了很多关于fiddle的实用技能,工作上虽然也是用fiddle抓包,但是仅仅只限于抓包,看数据,对于其中的各种令人眼花缭乱的功能还是知之甚少,看完后才明白fiddle是如此的的强大,居然还能做性能,现把其中的一些功能做个总结:

上图标注出的就是我们常用的一些地方

1.开始抓包/停止抓包   这个快捷键F12就可以切换,当然也可以鼠标点击左下角的Capturing

2.设置断点  工具栏Rules->Automatic Breadpionts->Before Request/After Response,fiddle作为一个代理工具,在客户端发送请求到服务器或者服务器发送响应到客户端的时候,下个断点,我们就可以来改变请求或者响应的内容,例如设置Before Request

此时所有的请求都被暂停了,要恢复可以点击Disable,

此时编辑Raw选项卡的内容(比如改变header或者Body),然后点击Run to Completion,就可以继续运行,发送到服务器,由此来改变请求的内容。响应断点也是一样。

也可以choose response来选择响应的内容,可以选择各种响应码,这样就不用到服务器,直接fiddle就返回了,可以用来模拟请求404,502

3.弱网设置 工具栏Rules->Customize Rules,这样就打开了一个文档,其中可以设置请求的默认header和body,找到oSession["request-trickle-delay"] = "100"; 

这里的意思是说每发送/接收1kb的内容延迟多少ms,可以通过这个公式来设置1000=nkbit/s* 延迟ms,比如想设置50kbit/s的带宽,那延迟设置为20ms,50*20=1000,设置完成后保存,点击Rules->Performance->Simuate modem Speeds

这样就设置ok,你就会发现你的网页打开很慢了

4.打开tools->options

点开https选项,勾选如上的Capture HTTPS Connection,勾选下面的Decrypt HTTPS traffic和Ignore server,点击各种弹窗的yes,这样就会在本地安装一个https的证书,我们就可以抓https的包了(默认只能抓http),由于firefox是自动管理https证书的,需要将证书导出,然后安装到firefox浏览器

再打开connection,勾选如下

这样就可以抓手机的包了,不过手机上要安装HTTPS的证书,通过浏览器访问 你的电脑IP:8888来获取证书并安装,ios和安卓的安装方式有很大不同,具体可以百度,总之,客户端必须安装HTTPS证书才能用fiddles来抓包

5.选中session,点击replay,会将这些session再发送一次

如果按住shift键再点击replay,会出现选择循环发送多少次的输入框,fiddle会调用多线程来模拟用户的并发,这个可以做简单的压力测试

 

 6.点击工具栏的Text wizard,这是个可以得到各种内容的转码格式的小工具

 

7.选中一个session,有如下选项卡

statistics:这个是用来统计各个过程的耗时,如DNS查询,tcp廉洁耗时

Inspectors:用来显示请求和响应的内容,可以通过JSON,XML,Imageview来查看各种格式

Auto Responder:这个可以设置fiddle自动响应请求而不经过服务器,具体操作如下:

可以把session拖入其中,在设置Rules Editor中的响应文件,和之前的一样可以设置404,502,和本地文件,再勾选上enable rules,unmatched request(不匹配的请求放行,不予理睬),点击保存,那下次这个请求就会响应我们设置的内容了

composer:用来模拟一个请求,和postman差不多,可以把session拖入到其中,然后再修改,点击execute来发送请求

 

8.点击session的replay->Ressiue and Edit,可以重新发送该请求,类似于请求前下断点,可以编辑Raw来改变请求,这个和下断点的操作一样

9.命令行,可以在左下角的命令行输入各种命令来执行,比如cls清屏(或者快捷键ctrl+x),help等

基本常用的一些辅助功能就这些了,当然还有编辑脚本来改变颜色,请求等功能,也可以下载第三方插件来扩展,不得不说看完这本书又重新认识了fiddle,看到了他的强大之处。