【android】Fiddler技能get√
上周三,我们定制了自己的 Fiddler 能够支持 WinNet 和 WinHttp 两种请求。但是在使用 Fiddler 的过程中,总是磕磕绊绊,如何让我们的Fiddler使用越来越顺手,那就来 get 以下技能吧
问
测试过程中,手机借来借去是常有的事情,也许你刚在一台手机上将自己IP添加上,过一会儿这台手机被某某某拿走了,不一会儿,你的 Fiddler 上面就多了很多会话,不巧其中有个URL的参数id为空。bug?!然而,重复操作N遍,都没有重现。仔细查看请求后发现不是自己使用的手机。如何摆脱曾经的小尾巴,请看下文
在Tools > Fiddler Options > Connections 下面默认的端口号都是8888,为了避免这种情况对自己的打扰,在找不到被某某某拿走的手机时,可以将自己的端口号修改为其他的,例如:8889。重启Fiddler,再在自己使用的手机上做相应的修改即可
问
在 PC 上打开 Fiddler 用于查看手机端的请求,但总是被 PC 来来往往的请求干扰,如何只查看 Android 上的请求,而不被干扰呢
当然 Fiddler 有强大的 filter ,通过 filter 能够只查看自己关注的请求。但是呢,有一些去服务器下载的请求,由于服务器有好多,添加过滤器有可能过滤掉本来想要看的内容,例如:某个 banner 展示成功的前提是:图片资源下载成功。当我们在测试的过程中看到 banner 图显示不出来,到底是 banner 图的功能有问题呢?还是服务器的问题呢?因此,作为一名认真负责的测试同学,我们想要准确定位bug的原因,就需要关注这个过程中发生了什么,而不能简单的跟开发说:banner 图显示不出来了。SO,这种过滤如何实现呢?正确的处理方式是:点击 Fiddler 左下角的“Capturing”。TA其实是File > Capture Traffic的快捷键,可以控制是否把 Fiddler 注册为PC系统代理,当左下角显示Capturing时,Capture Traffic是打开的,此时的IE的Internet选项>连接>局域网设置中的代理服务器是勾选的;否则是没有勾选的。
问
测试过程中需要访问测试服务器, 打开 Fiddler,在 PC 的etc目录下修改 hosts 文件却不能生效,为什么呢?
Fiddler 启动时,修改 hosts 的时候是无效的,需要重启 Fiddler才能生效。具体原因见下面大神 Eric Lawrence 的解释:
Fiddler reuses connections, so if there was already an established connection, any change to the HOSTS file might not be noticed. You might try hitting CTRL+X to clear the Web Sessions list and the cache of reused connections.
Also, instead of using the PC’s Hosts file, instead consider clicking the Tools > HOSTS menu item inside Fiddler.
如大神所说,当 Fiddler 已经建立会话时,任何修改 hosts 的行为都不会被 Fiddler 注意到。可以通过 Fiddler 的 Tools > HOSTS 处导入本地的 hosts 文件。需要指测试服务器的时候,勾选"Enable remapping of requests for one host to a different host or IP, overriding DNS",否则去掉勾选