06. 抓包工具Fiddler
06. 抓包工具Fiddler
目标
- 能操作抓包工具抓取http请求和响应的数据包
- 能操作抓包工具进行弱网测试
- 能使用抓包工具绕过页面限制进行测试
1. 什么是抓包
说明:客户端向服务器发送请求以及服务器响应客户端的请求,都是以数据包来传递的
抓包:通过工具拦截客户端与服务器交互的数据包
2. 抓包工具(Fiddler)
Fiddler介绍:Fiddler是一个http协议调试代理工具,它能够记录并检查所有你的电脑和互联网之间的http通讯。
Fiddler下载:https://www.telerik.com/download/fiddler
抓包的原理:代理服务器
3. 抓包工具的应用场景
1. 定位前后端Bug
定位前后端Bug的步骤
前端问题
无请求;
请求参数、请求方法或者URL有误;
请求正确,响应正确,显示错误;
后端问题
请求正常,无响应;
请求正常,响应错误;
2. 模拟弱网测试
- 带宽1M和带宽100M打开tpshop网站效果一样吗?
- 手机使用2G网络和使用3G网络打开京东的效果一样吗?
1、弱网环境下可能会出现的异常
- 上传文件时进度卡住不动
- 登录不上或者登录后立即掉线
- 响应过程中页面控件可点击,导致崩溃
- 搜索不响应,多次点击后结果显示总在刷新被替换
2、绕过界面限制直接测试服务器
- 为什么要绕过界面限制做测试?
- 界面限制导致部分异常数据无法输入
- 为什么要绕过界面限制做测试?
4. Fiddler设置过滤
作用:过滤出指定域名的请求
第一步:Filters菜单 -> 勾选Use Filters
第二步:在第二个下拉框中选择Show only the following Hosts,并输入目标hosts, 第一个下拉框不需要修改
第三步:Actions -> Run Filterset Now立即执行
5. Fiddler删除请求
- 方式一: 删除所有-点击Remove all
- 方式二: 删除所有-命令行输入
cls
方式三:(删除单个、多个或所有)右键请求 - remove
6. 查看请求数据包内容
方式: 选中数据包或者双击 -> 点击Inspecters -> 请求内容点击Raw -> 响应内容点击Raw(行\头\体)
7. 弱网测试
1. 弱网环境下可能会出现的异常?
- 上传文件时进度卡住不动
- 登录不上或者登录后立即掉线
- 响应过程中页面控件可点击,导致崩溃
- 搜索不响应,多次点击后结果显示总在刷新被替换
2. 如何进行弱网测试?
1. 设置要模拟的网络速度
选中需要设置弱网的接口,自定义规则。如右图 Rules->Customize Rules 或者直接Ctrl+R
Ctrl+F输入
m_SimulateModem
/request-
/response-
/300
,找到 m_SimulateModem更改上行、下行网络速度,Ctrl+S保存
注:
- request-trickle-delay:代表每KB的数据被上传时会被延时多少毫秒
- response-trickle-delay:对应下载时每KB的数据会被延时多少毫秒
2. 开启网络延时
- 开启网络延时
- 勾选:Rules -> Performance -> Simulate Modem Speeds
测试项目
- ……
测试完成后需恢复设置
- 取消勾选:Rules -> Performance -> Simulate Modem Speeds
3. 网络延时计算方法
# 弱网延迟事件计算公式:
延时ms=[1KB / (速率(KB单位)bps / 8)B/s] * 1000
# 单位换算关系:(B:字节 b:位)
1B = 8b
1B/s = 8b/s(或1Bps=8bps)
1KB = 1024B
1KB/s = 1024B/s
1MB = 1024KB
1MB/s = 1024KB/s
1Mbps = 1000000bps
1M带宽:速率为1Mbps
1s = 1000ms
# 网络延时计算方法:
1. 已知当前网络上行速度为 2.8Mbps,请计算该速率下的延时是多少秒?
1. 解题思路:单位换算、套用公式
2. 2.8Mbps 换算成bps,值为多少?
2.8 * 1024
3. 延时ms=[1 / (速率bps/8)B/s] * 1000
[1 / (2.8 * 1024 / 8)] * 1000 = 2.85ms
2. 已知客户A所处网络为 2M 带宽,请计算我们应该将延时设置为多少毫秒才可以模拟客户环境?
1. 本题期望得到延时,单位为毫秒
2. 2M 带宽:速率为2Mbps
3. 根据速率计算延时
[1 / (2 * 1024 / 8)] * 1000
8. 绕过界面限制做测试
原因:界面限制导致部分异常数据无法输入
如何绕过界面限制做测试?
步骤:
设置断点
修改请求
修改响应
1. 设置断点(请求之前)
操作步骤1:找到Rules -> Automatic Breakpoints -> 选中Before Requests
操作步骤2:修改请求体 -> 点击Run to Completion(如右图)或 Break on Response - 跳转到响应
操作步骤3:使用完断点需要关闭
2. 设置断点(响应之后)
操作步骤1:找到Rules -> Automatic Breakpoints -> 选中After Responses
操作步骤2:修改响应体 -> 点击Run to Completion(如右图)
操作步骤3:使用完断点需要关闭