需求
现在基本的一个App开发流程都是在定好需求后,就开始Agile development。需要客户端与服务端共同商量一套协议之后,服务端和客户端开始并行开发。原则上客户端应该相信服务端,但是事与愿违,经常会出现服务端返回一些并非客户端想要的数据,造成上线后App的各种异常。为了让服务端对客户端造成的影响最小,我们可以借助一些工具来协助我们开发。今天要说的就是Fiddler(http://www.telerik.com/fiddler)这个神器了。
原理
Fiddler算是一个抓包工具,不同的是这个抓包工具只针对于HTTP协议。而且它可以打开一个本地的代理服务器,让手机连接上Fiddler,抓取手机上面的所有HTTP报文(如果搭配上WireShark还可以抓到除了HTTP以外的数据)。
安装
Fiddler安装异常简单:
1、安装.NetFramework(已安装的请忽略)
2、安装Fiddler。(Next即可)
连接手机
要用Fiddler调试手机上面的通信,需要简单的设置一下:
1、点击Tools–>Fiddler Options,选中Connections的选项卡,然后勾选Allow remote computers to connect如图:
2、让手机连接Fiddler的代理服务器,先找到本机的IP地址:在cmd下输入ipconfig命令:
然后在手机上面配置代理服务器,以Android为例,在WIFI高级设置里面有设置代理选项,改为手动:
点击“确定”后,就可以看到在Fiddler里面捕捉到的手机HTTP请求了。是不是很简单。还附带调试报文的效果喔~
伪造请求数据
Fiddler的其他一些功能,比如Filter,Log,Timeline等,读者可以慢慢研究哦。我们今天要说的主角是AutoResponder(自动回复)。顾名思义,就是可以自动返回接口数据。在Fiddler右边第三个选项卡就是AutoResponder。我们只需要在这里配置好规则即可。
点击Add Rule,在Rule Editor处可以自己写上规则,可以使用具体的一个网址,也可以写正则表达式。如果我们在左边报文处有选中某一个选项,则Rule Editor会自动填入左侧报文对应的请求地址。现在我们随便在电脑上面创建一个.json文件,在里面写入接口想要返回的内容,保存后,然后我们可以在最底部的输入框选中”Find a file”来选中定义好的协议文件,如图:
最后点击”Enable automatic responses”,这些规则就开始生效了。我们还可以导出规则,然后给别人使用:选中要导出的规则,右键,选择”Export all”,即可把配置导出,然后给其他人使用了。是不是很方便?
总结
Fiddler的这个功能可以让我们设置一系列的Rule,自己定义请求某一个接口返回的数据。比如我们的服务端地址是10.128.127.10,我们就可以按照接口文档里面定义好的规则创建并且维护一套假数据配置,然后给所有开发客户端的程序猿使用,在并行开发的情况下,效率可以大大加大。我们甚至可以专门建立一个git的repository来管理这份配置文件,如果接口有更新,配置也需要跟着更新。这样完全不需要我们自己在代码或者本地文件里面伪造接口数据进行调试了,直接可以模拟真实环境来写代码,真正的实现Runtime debug。
版权声明:本文为博主原创文章,未经博主允许不得转载。