1 请求响应报文
1.1 请求部分
- Headers:显示请求的头信息,重点关注请求类型。
- textView & SyntaxView:分别以纯文本和语法高亮的方式显示请求参数。
- WebForms:显示请求的 GET 参数和 POST body 内容。
- HexView:以十六进制格式显示请求数据。
- Auth:显示请求头中的认证信息,如 Proxy-Authorization。
- Cookies:显示请求中发送的 cookie 信息。
- Raw:将整个请求显示为纯文本格式。
- Json & XML:如果请求的 body 是 JSON 或 XML 格式,会以分级结构显示相应内容。
1.2 响应部分
- Transformer:显示响应的编码信息。
- Headers:分级显示响应的头信息。
- textView & SyntaxView:分别以文本和语法高亮方式显示响应 body。
- ImageView:如果响应是图片资源,则显示相应的图片。
- HexView:以十六进制格式显示响应数据。
- WebView:显示响应在 Web 浏览器中的预览效果。
- Auth:显示响应头中的 Proxy-Authorization 和 Authorization 信息。
- Caching:显示请求的缓存信息。
- Cookies:显示请求中的 cookie 信息及私密的 P3P Header 信息。
- Raw:将整个响应显示为纯文本。
- XML:如果响应的 body 是 XML 格式,则以分级的 XML 树结构显示。
2 定位前后端问题
2.1 拦截HTTP请求和响应
-
启动Fiddler并配置相关设置:
- 打开Fiddler,配置代理设置,确保它能够正确地捕获从浏览器或客户端发送的请求。
- 配置Fiddler捕获的请求范围,可以选择“捕获所有请求”或者只捕获特定的请求。
-
拦截HTTP请求与响应:
- 在Fiddler界面中,所有HTTP请求和响应都会被自动捕获并显示。
- 请求被列在 Sessions 面板中,点击任何一个请求,可以查看请求的详细信息,包括请求头、请求体、响应头、响应体等。
2.2 分析HTTP数据包
-
检查请求的详细信息:
选择一个请求,查看它的 Request(请求)部分。确认请求方法(如GET、POST等)、请求头信息(如Content-Type、Authorization等)和请求体(如参数、数据等)。 -
检查响应的详细信息:
查看请求返回的响应数据。特别关注响应状态码、返回的JSON或HTML数据以及响应头。
2.3 判断问题来源
1. 前端问题
前端问题通常与请求的发送、数据处理或UI渲染相关。可以通过以下几种情况判断:
-
Fiddler没有捕获到请求:
如果Fiddler没有拦截到任何请求,说明前端页面可能没有正确绑定事件,或者JavaScript代码出现了错误。可以检查前端代码,确保请求逻辑正确触发。 -
请求已发送但响应数据不符合预期:
如果请求被成功发送,但返回的响应数据不符合预期,且确认前端传递的数据是正确的,那么问题可能出在前端的处理逻辑中。例如,数据解析错误、UI更新失败等。 -
响应数据存在但未显示:
如果返回的数据在 Raw 或 JSON 响应体中已正确返回,但在前端界面中未正确显示,那么很可能是前端的显示逻辑存在问题。检查前端代码中数据渲染的部分,确保响应数据被正确解析和显示。
2. 后端问题
后端问题通常与请求的处理、数据的返回以及服务器的状态有关。可以通过以下几种情况判断:
-
Fiddler捕获到请求但响应错误:
如果Fiddler成功捕获到请求并且返回的结果不符合预期,并且确认前端传递的数据是正确的,那么问题可能在于后端服务的处理逻辑。 -
响应状态码为500:
500状态码表示服务器内部错误,通常是后端代码逻辑或数据库查询等出现了问题。需要检查后端日志,定位错误发生的具体位置。 -
响应状态码为404:
404状态码表示请求的资源未找到。可能是请求的URL路径错误,或者后端服务未找到对应的处理方法。在这种情况下,可以检查前端请求的URL是否正确,并确认后端服务是否正确注册了该接口。 -
返回的数据不完整或为空:
如果后端返回的数据格式正确,但预期的数据未包含在响应中,问题可能出在后端的数据生成或查询部分。可以通过检查后端接口的实现和数据库查询逻辑,确保数据正确返回。
3 弱网测试
①定义
弱网测试是指在网络状况较差的情况下,模拟应用程序的使用场景,评估应用在各种网络状况下的表现。常见的网络问题包括:网络延迟、丢包、带宽不足等,这些都会直接影响应用的稳定性和用户体验。
②步骤
-
安装Fiddler
首先,下载并安装Fiddler。安装完成后,打开Fiddler,进入主界面。 -
打开ScriptEditor
Fiddler 提供了脚本编辑功能,允许用户自定义请求和响应规则。要打开 ScriptEditor,可以按Ctrl + F12
,或从菜单栏选择Rules
->Customize Rules
,进入脚本编辑窗口。
-
设置网络模拟速度
网络模拟速度默认上传速度为300KB/s,下载速度为150ms的延迟。
更改步骤如下:
快捷键 Ctrl+F 查找 m_SimulateModem 标志位
-
测试模拟网络环境
从菜单栏选择Rules
->Performance
->Simulate modem speed
。
-
分析测试结果
进行弱网模拟后,观察应用程序的表现。常见的性能问题包括:- APP崩溃:检查应用是否在弱网环境下容易崩溃。
- ANR(应用无响应):查看在网络延迟和丢包的情况下,应用是否发生长时间无响应。
- 数据丢失:测试应用是否能够在网络中断或不稳定的情况下保持数据的完整性。
-
优化网络设置
根据测试结果优化应用的网络请求逻辑,例如:- 重试机制:在请求失败时,加入重试机制,保证请求的成功率。
- 异步处理:将网络请求的耗时操作进行异步处理,避免UI线程被阻塞,提升用户体验。
- 数据缓存:在网络不稳定时,考虑本地缓存机制,减少对实时数据的依赖。
4 Mock测试
①定义
Mock 测试是一种在测试过程中使用虚拟数据替代真实数据的测试方法。当某些接口尚未开发完成、难以构造,或者无法立即获取时,可以使用 Mock 数据来模拟接口的返回结果。
例如:有一个登录或下单支付的流程接口需要测试,而后端接口开发尚未完成,我们可以通过 Mock 测试来模拟接口返回成功的结果,继续测试流程的其他部分。
②步骤
-
启动 Fiddler 并选择菜单栏中的
AutoResponder
选项 -
勾选
Enable Rules
(启用规则)以允许创建和启用模拟规则 -
选择要模拟的接口路径并拖入选择域
-
创建一个包含 Mock 数据的文本文件
-
配置完成后,点击
Save
进行保存,确保规则已启用
当前端请求指定接口时,Fiddler 会自动拦截请求,并返回我们预设的 Mock 数据,从而模拟接口的响应。