目录
一、报文分析
Statistics 请求性能数据
检查器(Inspectors)
自定义响应(AutoResponder)
Composer
Composer的功能就是用来创建HTTP Request然后发送请求。 允许自定义请求发送到服务器,即可以手动创建一个新的请求,也可在会话表中拖拽一个现有的请求。可以作为简单的接口测试功能。
Filter过滤器
过滤器,可以帮助我们过滤出需要监控的请求。比较常用。
主机过滤
进程过滤
请求头过滤
断点过滤
Response Status Code过滤
响应类型及响应大小过滤
响应头过滤
二、断点应用
全局断点
断点命令列表
三、模拟网络限速
为什么需要弱网测试
弱网情况下容易出现的问题
Fiddler弱网测试配置
四、HTTPS的拦截
HTTPS基础
Fiddler中配置HTTPS
一、报文分析
Statistics 请求性能数据
分析数据注解:
Request Count: 1 #请求数, 该session总共发的请求数
Bytes Sent: 580 (headers:580; body:0) #发送的字节数
Bytes Received: 2,215 (headers:385; body:1,830) #接受到响应的字节数
ACTUAL PERFORMANCE # 实际度量的指标数据
--------------
ClientConnected: 23:22:29.356 #客户端连接时间
ClientBeginRequest: 23:22:29.771 #客户端发送请求的时间
GotRequestHeaders: 23:22:29.771 #获取请求头文件的时间
ClientDoneRequest: 23:22:29.771 #客户端完成请求的时间
Determine Gateway: 0ms #确定网关使用的时间
DNS Lookup: 0ms #查找DNS使用的时间
TCP/IP Connect: 0ms #TCP链接使用的时间
HTTPS Handshake: 0ms #HTTPS握手使用的时间
ServerConnected: 23:22:29.415 #服务器连接发生的时间
FiddlerBeginRequest: 23:22:29.771 #Fiddler开始请求的时间
ServerGotRequest: 23:22:29.771 #服务器得到请求的时间
ServerBeginResponse: 23:22:30.030 #服务器开始响应的时间
GotResponseHeaders: 23:22:30.030 #获得响应头的时间
ServerDoneResponse: 23:22:30.030 #服务器完成响应的时间
ClientBeginResponse: 23:22:30.030 #客户端开始响应时间
ClientDoneResponse: 23:22:30.030 #客户端完成响应时间
Overall Elapsed: 0:00:00.258 #花费的总时间
RESPONSE BYTES (by Content-Type) #响应字数统计
--------------
image/jpeg: 1,830 #图片数据共1830字节
~headers~: 385 #响应头385字节
ESTIMATED WORLDWIDE PERFORMANCE #全球性能估计数据
--------------
The following are VERY rough estimates of download times when hitting servers based in Seattle.
#下面数据是基于西雅图服务器下载时间粗略估计数据
US West Coast (Modem - 6KB/sec) #美国西海岸 modem调制解调
RTT: 0.10s
Elapsed: 0.10s
Japan / Northern Europe (Modem) #日本/北欧
RTT: 0.15s
Elapsed: 0.15s
China (Modem) # 中国
RTT: 0.45s
Elapsed: 0.45s
US West Coast (DSL - 30KB/sec) #电话线或双绞线上网方式
RTT: 0.10s
Elapsed: 0.10s
Japan / Northern Europe (DSL)
RTT: 0.15s
Elapsed: 0.15s
China (DSL)
RTT: 0.45s
Elapsed: 0.45s
检查器(Inspectors)
自定义响应(AutoResponder)
可以在拦截请求之后,重定向到本地资源,或使用Fiddler内置响应,还可以自定义响应。
Composer
Composer的功能就是用来创建HTTP Request然后发送请求。 允许自定义请求发送到服务器,即可以手动创建一个新的请求,也可在会话表中拖拽一个现有的请求。可以作为简单的接口测试功能。
Filter过滤器
过滤器,可以帮助我们过滤出需要监控的请求。比较常用。
-
主机过滤
- show only intranet Hosts 只显示局域网请求
- Show only Internet Host 只显示广域网请求
- Hide the following Hosts 隐藏符合条件的主机,条件在下面的文本框中定义
- Show only the following Hosts 仅显示符合条件的主机
- Flag the following Hosts 标记符合条件的主机
-
进程过滤
- Show only traffic from 只过滤选择的进程的HTTP数据包
- Show only Internet Explorer traffic 只过滤IE浏览器HTTP数据包
-
请求头过滤
- Show only if URL contains 只过滤URL中包含指定内容的请求
- Hide if URL contains 隐藏URL中包含指定内容的请求
- Flag request with headers 标记出保证指定head的请求
- Delete request header 删除指定的请求头
- Set request header 设置请求头,可以在测试接口时,在每个请求中设置一个定义的Header
-
断点过滤
- Break request on HTTP POST:给所有POST请求设置断点
- Break request on HTTP GET with QueryString:给所有带参数的GET请求设置断点
- Break response on Content-Type:给特定的Content-Type设定断点
-
Response Status Code过滤
- Hide success(202,204,206):隐藏响应成功的session(202,204,206);
- Hide Authentication demands(401):隐藏未经授权被拒绝的session(401);
- Hide redirects(300,301,302,303,307):隐藏重定向的session(300,301,302,303,307)
- Hide Not Modified(304):隐藏无变更的session(304)
-
响应类型及响应大小过滤
- Show all Content-Type:显示所有响应类型
- Hide smaller than ?KB:隐藏小于指定大小的session
- Hide larger than ?KB:隐藏大于指定大小的session
- Time HeatMap:获得即时数据(绿色阴影代表响应时间在50毫秒以内;超过50毫秒但在300毫秒之内的响应条目没有颜色;响应时间在300至500毫秒之间的会涂以黄色;超过500毫秒的用红色底纹显示)
- Block script files:阻止脚本文件,显示为404
- Block image files:阻止图片文件
- Block SWF files:阻止SWF文件
- Block CSS files:阻止CSS文件
-
响应头过滤
- Flag response that set cookies:标记会设置cookie的响应
- Flag response with headers:标记带有特定header的响应
- Delete response headers:删除响应header
- Set response header:设置响应的header
增加过滤的快捷方法
二、断点应用
通过断点功能,可以在测试时方便的篡改request,response以达到测试的目的,如果:在请求头中的参数修改成错误的,或在响应返回前将响应体中的数据修复为特殊的格式查看前端的反应;断点还可以模拟断网等情况,来测试在断网的特殊情况下前端的反应。
断点的类型:
- 全局断点
- 特定请求的断点
断点的设置方法。
-
全局断点:
- Before Requests 请求前断点,可以用户篡改请求头,或请求参数
- After Responses 响应后断点,可以篡改响应头,或响应回来的数据
- 特定请求的断点
- bpu ZKing 卓京集团 针对指定的url设置请求前断点,也可以使用部分url
- bpafter ZKing 卓京集团 针对特定url设置响应后断点
-
断点命令列表
命令 | 作用 | 示例 |
bpu | 请求前中断 | bpu oa.veryedu.cn |
bpafter | 响应后中断 | bpafter oa.veryedu.cn |
bps | bps后面跟状态码,表示中断所有是这个状态码的请求 | bps 200 |
bpm | 中断http方法的命令 | bpm get |
go | 放行所有中断下来的请求 |
三、模拟网络限速
为什么需要弱网测试
弱网测试的目的就是尽可能保证用户体验。 弱网测试的关键点有哪些:
- 页面响应时间是否可以接受
- 超时情况下的系统提示处理是否符合定义,异常信息是否显示正常
- 大流量事件风险:是否会在弱网下进行更新apk包、下载文件等大流量动作
弱网情况下容易出现的问题:
- 丢包。丢包应该是最常见的问题。在TCP协议中,需要不停的发送请求,来确认连接状态,一旦发生丢包,就需要重传。这个时候就需要去检查产品的处理机制,给予什么提示,如果未响应怎么处理这些。
- 延时。延时也是很常见的问题。由于网络太差,产生了网络波动,导致数据包在传输的时候出现抖动。可能导致请求出现超时的现象。这个时候就需要给予相应的提示,或者是其他的处理方式。
Fiddler弱网测试配置
- 开启网络限速模式
开启该功能可以模拟网络被限速后系统的运行情况。
- 根据需要来定义网络限速参数
Rules --> Customize Rules
if (m_SimulateModem) {
// Delay sends by 300ms per KB uploaded.
// 该参数代表每KB的数据被上传时会被延时多少毫秒
oSession["request-trickle-delay"] = "300";
// Delay receives by 150ms per KB downloaded.
// 该参数对应下载时每KB的数据会被延时多少毫秒
oSession["response-trickle-delay"] = "150";
}
四、HTTPS的拦截
HTTPS基础
根据HTTPS请求处理流程图,解释HTTPS的基本原理。
HTTPS是为了基于HTTP协议的通讯安全而诞生的,是HTTP + TLS/SSL 的组合体。 下面是HTTPS请求的基本过程:
Fiddler中配置HTTPS
点击 Options
勾选 Decrypt HTTPS traffic
安装证书
安装成功后,在系统的证书管理器中应该可以查看到:
截获HTTPS请求:
思考: HTTPS可以被代理解密,为什么安全铜须还需要HTTPS?
评论区等你的解答😏