一、为什么用fiddler?
公司有一个APP项目,因为涉及第三方开发好的接口返回的数据,APP需要根据这些返回数据或者返回的状态进行相对于的处理,但是我一开始也是懵逼的,我不知道怎么办,不知道测试?因为这接口是别的公司开发接口,然后我们APP去请求数据,一时真的不知道,一个测试同事非常Nice告诉我,你用fiddler,可以修改返回来的数据,你去了解下。恩恩,那就开始一顿胡乱的弄啦。
二、下载fiddler设置手机抓包
1、怎么下载fiddler就不用说了吧,直接百度就好了。主要还是说下怎么设置fiddler手机抓包吧。安装好fiddler之后,打开的界面如下:
我暂时把这个界面分为三部分吧:
第一个区域:fidller所抓到的请求request
第二个区域:查看request的请求头的详细信息
第三个区域:查看响应response的详细信息
2、设置fiddler和手机端,实现对手机APP发出的http请求进行抓包
1)fiddler端:
在菜单栏tools-options-Connections下勾选Allow remote computers to connect,默认监听的端口8888不用改,需要重启fiddler生效。
2)设置手机端
因为fiddler是通过设置代理来进行抓包,所以需要对手机端进行设置代理,同时能够实现抓包的前提:手机连的wifi和PC电脑需要同一个网段,不然是不能够抓包的呢
步骤一、进入手机设置,查看手机所连接的wifi,长按连接的wifi,弹出框后,选择修改网络
步骤二、进入修改网络页面后,勾选“显示高级选项”,
代理方式选择:手动,服务器主机名填写电脑的IP地址,服务器端口填写8888,这个端口和fiddler监听的端口保持一致
查看电脑IP方法,命令ipconfig
完成上面fidller和手机端的设置后,就可进行手机APP端的抓包了。那么我在手机端登录QQ,看看能抓出什么来呢?
你看登录一个QQ就有这么请求,看其中的一条,我可以看到请求头和响应头。
三、怎么修改返回的数据呢?
要修改服务器返回的数据,那么需要返回客户端之前把对于的response修改,然后再返回去,所以首先需要把请求拦截下来,需要在fiddler端设置
在菜单栏Rules-Automatic Breakpoints-After Response选择设置好。但是在上面抓到的请求实在太多,看到头晕,我们可以通过过滤器筛选出来我们想要的,如下:
这样子就显示就少了很多,看到舒服点了吧。
那么我们在QQ上再次操作,我们看到拦截到请求是这样子:
那么我们要修改的返回数据,首先要确认transformer是勾选的是None
然后再相对于TextView这里可以修改相对于返回内容
修改完后,我们在左边的黑色那一栏输入go命令:
这样子就完成修改的返回数据了。在QQ请求太多了,这边数据太杂了,也太多了。不容易分辨。但是如果是我们自己测试的时候,我们对于单个请求,数据也比较清晰了。到目前为止就就是修改数据的操作了,可以按照APP测试所要求的来进行修改对于的数据了。
这个fiddler不仅可以修改响应的数据,还可以模拟弱网测试、修改请求,模拟返回服务错误404、502等。这些就不细说了。因为我想玩会游戏了。