
这是万物可述的第34篇原创文章
Fiddler抓包小技巧
1.简单构架

构架示意图:
Web浏览器和Web服务器之前是通过HTTP协议相互通信的
2.与包相关
2.1 包的概念:
包就是网络传输发送与接收的数据包
2.2 什么是HTTP协议:
互联网上应用最广泛的一种网络协议,它允许将超文本标记语言(HTML)文档从Web服务器传送到客户端的浏览器。

2.3 什么是HTTPS协议:
HTTPS(Hyper Text Transfer Protocol over SecureSocket Layer)超文本传输安全协议 ,是以安全为目标的 HTTP 通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性。

HTTPS=HTTP+TLS/SSL(非对称加密+对称加密+散列算法)
3.有关抓包
3.1 概念描述
抓包(packet capture)就是将网络传输发送与接收的数据包进行截获、重发、编辑、转存等操作,也用来检查网络安全。抓包也经常被用来进行数据截取等。
3.2 主要作用

3.3 抓包工具

4.Fiddler技能
4.1 Fiddler介绍以及抓包原理
4.1.1 Fiddler介绍
4.1.1.1 下载与安装
Fiddler官方地址:www.fiddler2.com/
Fiddler下载地址:https://www.getfiddler.com/

4.1.1.2 Fiddler--代理服务器
Fiddler是C#开发的,主要是在Windows上运行
Fiddler是一个http协议调试代理工具,它能够记录并检查所有你的电脑和互联网之间的http通讯,设置断点,查看所有的“进出”Fiddler的数据(指cookie,html,js,css等文件)。
4.1.2 Fiddler--抓包原理
如图:

4.2 Fiddler三大设置
4.2.1 安装证书,捕获HTTPS

4.2.2 自动解压HTTP响应,否则响应都是乱码。

4.2.3 隐藏“Tunner to”请求,防止捕获大量的无用的握手验证。

4.3 Fiddler中请求和响应

4.4 Fiddler实战
4.4.1 Replay重放功能
4.4.1.1 用Fiddler重放,实现快速添加收货地址
设计场景:
测试用例标题:收获地址最多可以建20个
测试步骤:
登陆商城
点击个人资料页面
点击收获地址页面。
新建一个收获地址
重复上面一步19次。
新建第20个收获地址,新建成功
新建第21个收货地址。
期待结果:新建第21个收货地址失败。
如果是测试人员手动来执行这个测试用例,在页面新建一个收获地址是1分钟。新建20个地址需要20分钟。太耗时间了。那么测试人员应该怎么做来快速创建20个收货地址。
操作步骤:
先填好一个收货地址,再打开Fiddler,点击提交,Fiddler抓到保存地址的包

选中保存地址的包,点击Replay

结果:瞬间就添加了大量的收货地址

4.4.1.2 前端验证和后台验证
设置场景:
某学校举办绘画活动,邀请所有学生家长为喜欢的绘画进行投票。
投票网址
http://weike.cflo.com.cn/play.asp?vodid=176713&e=7
要求:每天每一账户仅投票3次,可投多人,也可投一人,投票时间为画展截至。请各位家长积极参与,谢谢。
操作步骤:
前端验证
登录一有效账号,在前端页面进行投票3次,此站点提示:投票成功

在前端页面进行投票第4此,此站点提示:你已经投过票了。

后端验证:
登录另一有效账号,在页面进行投票,并用Fiddler抓包,大量重放


4.4.2 Fiddler修改包功能
改包原理示意图:

4.4.2.1 安全测试-支付-改余额
安全测试示意图:
步骤:
先打开订单支付页面

打开Fiddler,按快捷键F11下断点。支付页面上点击“立即支付”,Fiddler拦截到支付的HTTP请求。然后再按SHIFT+F11,取消断点。
在Fiddler中,把280.00元修改为0.01元。然后点击“Run to Completion”放行。

用支付宝支付0.01元后,可以看到订单成功界面。

4.4.2.2 伪造HTTP响应

Fiddler伪造HTTP响应原理示意图:
步骤:
打开Fiddler,下断点

改状态码为502

结果:

4.4.3 其他
4.4.3.1 将一个Chrome浏览器,伪装成一个IPhone6 的safari
操作步骤:

结果:

4.4.3.2 手机抓包
抓包实质:


详细抓包步骤:

另外,图Mock测试用通俗的语言来说,Mock测试就是模拟接口发送各种不同的HTTP响应,以便测试。如图:

4.4.3.3 限速,模拟弱网
限速原理:

设置场景:
实际的客户现场可能网络不稳定或者网速低,恶劣的网络环境会导致出现一些bug,影响用户体验甚至某些服务不可用。
而公司内部的研发环境网络通常比较顺畅,难以复现这种bug。
要解决这种问题,就需要制造弱网络的环境进行测试、复现并修复问题。
手机可以用2G、3G、4G,也是一种方式,但这都是网络模式,而Fiddler可以设置上传和下载的延时时间,这种控制非常灵活,可以帮助我们模拟低速网络情况下页面、APP的显示与交互情况,比如响应时间过长时是否有弹出网络不好的提示、页面crash以及显示错乱、session是否一致等。
设置限速时间:
(1)打开【Rules---Customer Rules】,Ctrl+F搜索(m_SimulateModem),默认发送数据是300毫秒,接收数据是150毫秒,根据实际情况限速后进行保存(Ctrl+S)
(2)启用限速:Rules---Performance---Simulate Modem Speeds
模拟限速操作步骤:



据说中国有句古语叫「金无足赤,人无完人」,但是,如果谁真的想打起灯笼来到市面上寻找完人,最终令他感到的可能不是一种失望,而是一种意外:完人可能就是那些终日为「善」而奔走,而又在不知不觉中实现了「美」的「真」实不虚的普通人。
追求完美是正常而有缺憾的人性。
--尼采





