Fiddler在测试中的一些应用场景总结

手机客户端抓包

1. 对fiddler进行设置

启动Fiddler,打开菜单栏中的 Tools > Fiddler Options,打开“Fiddler Options”对话框。

在这里插入图片描述
在Fiddler Options”对话框切换到“Connections”选项卡,然后勾选“Allow romote computers to connect”后面的复选框,然后点击“OK”按钮。
在这里插入图片描述
根据下图提示,获取你自己电脑的ip地址,端口默认为:8888
在这里插入图片描述

2.对手机进行设置

(1)打开手机的wlan,找到自己当前连接的网络
(2)长按该网络,进入设置界面
(3)打开高级选项,找到设置http代理
(4)在服务器处输入刚刚在fiddler中查询到的你电脑的ip地址,
端口号输入8888,如下图所示:
在这里插入图片描述
访问你想要抓包的应用,此时就可以进行抓包了。

3.新问题:https的请求抓不到的处理方式:

原因:要抓取 HTTPS 的 JS 内容,Fiddler 必须解密 HTTPS 流量。但是,浏览器将会检查数字证书,并发现会话遭到窃听。为了骗过浏览器,Fiddler 通过使用另一个数字证书重新加密 HTTPS 流量。Fiddler 被配置为解密 HTTPS 流量后,会自动生成一个名为 DO_NOT_TRUST_FiddlerRoot 的 CA 证书,并使用该 CA 颁发每个域名的 TLS 证书。若 DO_NOT_TRUST_FiddlerRoot 证书被列入浏览器或其他软件的信任 CA 名单内,则浏览器或其他软件就会认为 HTTPS 会话是可信任的、而不会再弹出“证书错误”警告
配置:
打开 Fiddler,在菜单栏中依次选择 【Tools】->【Fiddler Options】->【HTTPS】,勾上如下图的选项。
在这里插入图片描述
然后,就是手机安装Fiddler证书。
这一步,也就是我们上面分析的抓取HTTPS请求的关键。
操作步骤很简单,打开手机浏览器,在浏览器地址输入代理服务器IP和端口,会看到一个Fiddler提供的页面。
在这里插入图片描述
接着点击最下方的FiddlerRoot certificate,这时候点击确定安装就可以下载Fiddler的证书了。
下载安装完成好后,我们用手机客户端或者浏览器发出HTTPS请求,Fiddler就可以截获到了,就跟截获普通的HTTP请求一样。
目前ios11系统不支持抓取https的包,还在查原因
抓https请求遇到显示不出来的情况时,如下图:
在这里插入图片描述
此时就该考虑是证书失效了,先把之前证书卸载了,重新按照上面步骤装一下就可解决

使用fiddler遇到的一些场景的处理办法:

场景一

测试过程中,手机借来借去是常有的事情,也许你刚在一台手机上将自己IP添加上,过一会儿这台手机被某某某拿走了,不一会儿,你的 Fiddler 上面就多了很多会话,不巧其中有个URL的参数id为空。bug?!然而,重复操作N遍,都没有重现。仔细查看请求后发现不是自己使用的手机。如何摆脱曾经的小尾巴,请看下文
解决办法:在Tools > Fiddler Options > Connections 下面默认的端口号都是8888,为了避免这种情况对自己的打扰,在找不到被某某某拿走的手机时,可以将自己的端口号修改为其他的,例如:8889。重启Fiddler,再在自己使用的手机上做相应的修改即可

场景二

测试过程中发现访问的数据不正确,怀疑是修改的host没有生效导致的。但无法查看手机端访问该数据页面的ip,所以一直无法确认该问题
解决办法:

  1. 运行fiddler,菜单,Rules->Customize Rules…或者点击右侧tab
    “FiddlerScript”
  2. Ctrl+F查找“static function Main()”字符串,然后添加下面这行代码:
    FiddlerObject.UI.lvSessions.AddBoundColumn(“ServerIP”, 120, “X-HostIP”);
  3. 保存CustomRules.js或者点击“Save Script”按钮,如下图所示
    在这里插入图片描述
  4. 查看fiddler,此时ip会添加到所有数据的最后一列,拖到滚动条,即可看到,也可把他拖动到想比较的字段后面,如下所示:
    在这里插入图片描述

场景三

在测试过程中,也许你就关注几个请求,但是 Fiddler 的界面总是被满屏的session覆盖着,有时候要找到自己想要的关注的session,总是来回滚动好几个界面才行,如何能够一眼看到自己关注的请求呢?
解决办法:

  1. 运行fiddler,菜单,Rules->Customize Rules…或者点击右侧tab“FiddlerScript”
  2. Ctrl+F查找" OnBeforeRequest”字符串,在其中添加下面代码,如下所示:
    3.也可以通过工具栏个的find快捷键的方式进行筛选
    在这里插入图片描述

场景四

有些需求,我们需要验证下后台接口是否对请求做了只能处理一次的限制,比如:全民体验师成为体验师的接口,领取奖品接口,防止漏洞产生
解决办法:
1.Reply:点击该按钮可以向服务器重新发送选中的请求,他可以帮助我们验证接口是否屏蔽了重复请求的情况
例如:全民体验师—》成为体验师的接口
在这里插入图片描述
我想试试我自己的账号如果再次请求该接口,如果还用前端看就看不了了,此时可以直接用之前抓到的请求在请求一次,查看接口是否做了限制
我们选中刚刚接受邀请的那条请求,点击reply按钮,查看第二次请求的结果,这是你会看到,接口返回是接受邀请失败,这说明同一个账号只能成功一次
在这里插入图片描述
2.点击该按钮的同时按下SHIFT键会弹出提示对话框,要求指定每个请求应该被重新发送的次数,这个也一定程度上可以对接口进行了压测
在这里插入图片描述

场景五

用户在访问网页时,可能 各种网络情况,那我们怎么测试各种网络情况下我们的页面访问都能正常处理呢?
解决办法:
通过Rules->Customize Rules 打开Fiddler的代码编辑器,通过Edit->Find 找到m_SimulateModem这个字段,如图,如果需要放慢网速,就可以把这个字段中请求和响应的时间加大
在这里插入图片描述
在这里插入图片描述
之后保存一下,再通过Rules->Performance-> Simulate Modem Speeds
然后进行网络访问,此时网络状态就会变的比较慢

场景六

我们在测试过程中,经常会遇到需求中说明,该红包只能抢一次,同一个账号只能抢一次,同一设备只能抢一次的情况,我们除了用手机一个一个去试,还有没有更简单的办法呢?
解决办法:
通过Fiddler可以修改请求参数和响应结果

在这里插入图片描述
1.修改请求:
让我们来看个例子:红包大厅,限制一个设备只能有一个账号参加,但是我们通过fiddler抓包后,修改参数,同一设备也是可以有多个账号参加的
在这里插入图片描述
查看抓到的请求响应结果如下:
在这里插入图片描述
然后,设置请求断点后,如下显示
在这里插入图片描述
此时,查看器里的请求参数是可以编辑的状态
{“information”:“bd_web_api”,“command”:“grab”,“userno”:“20180209Z00050477”,“id”:“5a9cb58ce4b0365b046b87d4”,“accessToken”:“426046717c6d3bac05f4b6b7f43849f7”,“token”:"",“imei”:“562A7BA0-F725-43F6-9BD3-F8DDCD15A73C”,“platform”:“html”}
在这里插入图片描述
然后把参数里的 清空或是修改一下,然后点击Run to completion
在这里插入图片描述
之后,你会看到,该请求的响应成功了
在这里插入图片描述
再去查看红包大厅页面,红包变成已抢状态
在这里插入图片描述

  • 4
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值