Postman 负责接口调试、用例验证、响应断言 ,Fiddler 负责App 网络抓包、请求拦截、参数篡改 ,二者结合可高效完成 App 接口的全链路测试,覆盖抓包分析 - 用例构造 - 功能验证 - 异常场景测试四大核心环节。
前置准备
-
环境配置
- 安装软件:Postman(官网下载对应系统版本)、Fiddler Classic(适合移动端抓包)。
- 设备准备:一台测试手机(安卓 /iOS)、一台安装上述工具的电脑,确保手机和电脑处于同一局域网(如连接同一个 WiFi)。
- 证书配置(关键):Fiddler 需配置 HTTPS 证书,才能抓取 App 的 HTTPS 请求;手机需安装 Fiddler 根证书并信任。
-
Fiddler 基础配置(抓包准备)
- 打开 Fiddler,点击顶部菜单栏 Tools > Options > HTTPS。
- 勾选
Capture HTTPS CONNECTs和Decrypt HTTPS traffic,下拉选择...from all processes。 - 点击
Actions > Trust Root Certificate,按提示安装证书并信任(Windows 需在证书管理器中确认)。 - 切换到 Connections 选项卡,勾选
Allow remote computers to connect,默认端口为 8888 (可自定义,需记住),点击OK,重启 Fiddler 生效。 - 查看电脑局域网 IP:Windows 可通过
cmd > ipconfig查看,Mac 用ifconfig查看。
-
手机代理配置(关键)
- 安卓手机:设置 > WLAN > 长按当前连接的 WiFi > 修改网络 > 勾选 "高级选项" > 代理选择 "手动" > 代理服务器主机名填电脑局域网 IP ,代理端口填Fiddler 端口(8888) > 保存。
- iOS 手机:设置 > WLAN > 点击当前 WiFi 右侧
i图标 > 滚动到 "代理" > 选择 "手动" > 输入电脑 IP 和 Fiddler 端口 > 保存。
-
手机安装 Fiddler 证书
- 手机浏览器访问
http://电脑IP:8888(如http://192.168.1.100:8888)。 - 点击页面中的
FiddlerRoot Certificate下载并安装。 - 安卓:设置 > 安全 > 加密与凭据 > 从存储设备安装 > 选择下载的证书文件 > 命名后确认(部分安卓需开启 "安装未知来源证书" 权限)。
- iOS:设置 > 通用 > VPN 与设备管理 > 找到 Fiddler 证书 > 点击 "信任"。
- 手机浏览器访问
核心流程:抓包 - 调试 - 验证
阶段 1:Fiddler 抓取 App 接口请求
目标:获取 App 真实的接口调用信息(请求 URL、方法、头信息、参数、Cookie 等),为 Postman 调试提供依据。
-
打开 Fiddler,确保左下角
Capture Traffic处于开启状态(图标为箭头)。 -
打开待测 App,执行需要测试的业务操作(如登录、查询商品、提交订单)。
-
Fiddler 左侧会话列表会实时显示 App 发起的所有网络请求,包括第三方 SDK 请求和目标接口请求。
-
筛选目标接口
- 方法 1:关键词过滤。在 Fiddler 顶部搜索框输入接口域名(如
api.xxx.com),快速定位目标请求。 - 方法 2:标记过滤。右键点击目标请求 >
Mark > 选择颜色,方便区分。 - 方法 3:隐藏无关请求。点击
Filters选项卡 > 勾选Use Filters> 配置域名过滤规则(只显示目标域名),减少干扰。
- 方法 1:关键词过滤。在 Fiddler 顶部搜索框输入接口域名(如
-
分析请求详情选中目标请求,右侧面板查看关键信息:
- Inspectors > Headers:查看请求方法(GET/POST)、URL、请求头(Request Headers)、Cookie、Content-Type 等。
- Inspectors > Body :查看请求参数(GET 方法参数在 URL 中,POST 方法参数在
Raw或JSON标签下)。 - Inspectors > Response:查看响应状态码、响应头、响应体(JSON/XML 格式),确认业务返回结果。
阶段 2:Postman 构造请求并功能验证
目标:基于 Fiddler 抓取的接口信息,在 Postman 中构造请求,验证接口功能正确性。
-
新建 Postman 请求
- 打开 Postman,点击左侧
+号新建请求。 - 填写请求方法:与 Fiddler 中一致(如 POST)。
- 填写请求 URL:直接复制 Fiddler 中目标请求的完整 URL。
- 打开 Postman,点击左侧
-
配置请求头(Headers)
- 切换到 Postman 的
Headers标签页。 - 从 Fiddler 中复制请求头信息,粘贴到 Postman 中,关键头信息包括:
Content-Type:如application/json(决定参数格式)Authorization:如 Token、Bearer 令牌(登录态凭证)Cookie:会话凭证- 自定义头:如
app-version、device-id等 App 专属头
- 切换到 Postman 的
-
配置请求参数(Body)
- 若
Content-Type为application/json:切换到Body > raw,选择JSON格式,复制 Fiddler 中Body > Raw里的 JSON 参数。 - 若
Content-Type为application/x-www-form-urlencoded:切换到Body > form-data或x-www-form-urlencoded,按 Fiddler 中的参数键值对填写。 - 若为 GET 请求:参数直接拼接在 URL 中,或在
Params标签页填写键值对。
- 若
-
执行请求并验证响应
- 点击 Postman 中的
Send按钮,发送请求。 - 查看
Response面板:- Status:确认状态码是否符合预期(如 200 表示成功,401 表示未授权)。
- Body:查看响应数据是否与 Fiddler 中 App 实际接收的一致,是否符合业务规则。
- Test Results:后续可添加断言脚本验证结果。
- 点击 Postman 中的
阶段 3:Fiddler 拦截修改请求,测试异常场景
目标:通过篡改请求参数 / 响应结果,验证 App 和接口的异常处理能力(如参数非法、权限不足、数据越界)。
-
拦截请求并修改参数
- Fiddler 中点击 Rules > Automatic Breakpoints > Before Requests(开启请求前断点)。
- 再次在 App 中执行目标操作,Fiddler 会在请求发送到服务器前暂停(会话列表中该请求标红)。
- 选中该请求,右侧
Inspectors > Body标签页修改参数(如将user_id=123改为user_id=9999,将amount=100改为amount=-100)。 - 修改完成后,点击 Fiddler 顶部
Run to Completion(绿色箭头),发送修改后的请求到服务器。 - 查看 Postman 或 Fiddler 中的响应结果,验证接口是否能正确处理异常参数(如返回错误码、拒绝非法请求)。
-
拦截响应并修改结果
- Fiddler 中点击 Rules > Automatic Breakpoints > After Responses(开启响应后断点)。
- App 执行操作,服务器返回响应后 Fiddler 暂停(会话标红)。
- 右侧
Inspectors > Response > Raw标签页修改响应数据(如将success:true改为success:false,将data:[]改为data:[...])。 - 点击
Run to Completion,将修改后的响应返回给 App。 - 观察 App 界面表现,验证 App 是否能正确处理异常响应(如弹窗提示、页面正常显示,不崩溃)。
阶段 4:Postman 完善用例,批量执行与断言
目标:将调试通过的接口封装为 Postman 用例,添加断言实现自动化验证,便于后续回归测试。
1.添加断言脚本 在 Postman 的 Tests 标签页,编写 JavaScript 断言脚本,验证响应结果:
javascript
javascript
// 1. 验证状态码为200
pm.test("Status code is 200", function () {
pm.response.to.have.status(200);
});
// 2. 验证响应时间小于500ms
pm.test("Response time is less than 500ms", function () {
pm.expect(pm.response.responseTime).to.be.below(500);
});
// 3. 验证响应体包含指定字段
pm.test("Response body has success field", function () {
var jsonData = pm.response.json();
pm.expect(jsonData.success).to.eql(true);
});
-
2.保存为用例集
- 点击 Postman 左侧
Collections>+号新建集合(如App接口测试集)。 - 将当前请求拖拽到集合中,可按业务模块(如登录模块、订单模块)创建子文件夹。
- 配置环境变量:若接口有测试 / 生产环境差异,可在
Environments中创建环境(如测试环境),配置base_url等变量,请求 URL 改为{``{base_url}}/api/xxx,实现多环境切换。
- 点击 Postman 左侧
-
3.批量执行用例 选中集合,点击
Run,配置执行参数(如迭代次数、延迟时间),点击Run 测试集,查看批量执行结果,生成测试报告。
收尾工作
- 测试完成后,关闭 Fiddler 的断点(
Rules > Automatic Breakpoints > Disabled),避免影响其他网络请求。 - 关闭手机代理:恢复手机 WiFi 的代理设置为 "无",否则手机无法正常上网。
- 导出测试数据:Fiddler 可导出会话为
.saz文件(File > Save All Sessions),Postman 可导出集合为.json文件,用于存档或团队共享。
常见问题与解决方法
| 问题 | 解决方法 |
|---|---|
| Fiddler 抓不到 App 的 HTTPS 请求 | 1. 确认手机和电脑同局域网;2. 重新安装并信任 Fiddler 证书;3. 检查 App 是否开启了证书锁定(SSL Pinning),若开启需用 Xposed + JustTrustMe(安卓)或 SSL Kill Switch(iOS)绕过 |
| Postman 发送请求返回 401/403 | 1. 检查请求头中的 Token/Cookie 是否正确;2. 从 Fiddler 中复制 App 真实的登录凭证粘贴到 Postman |
| 手机配置代理后无法上网 | 1. 确认电脑 IP 和 Fiddler 端口填写正确;2. 检查 Fiddler 是否开启 Allow remote computers to connect |