APP接口测试流程实战Posman+Fiddler

Postman 负责接口调试、用例验证、响应断言 ,Fiddler 负责App 网络抓包、请求拦截、参数篡改 ,二者结合可高效完成 App 接口的全链路测试,覆盖抓包分析 - 用例构造 - 功能验证 - 异常场景测试四大核心环节。

前置准备

  1. 环境配置

    • 安装软件:Postman(官网下载对应系统版本)、Fiddler Classic(适合移动端抓包)。
    • 设备准备:一台测试手机(安卓 /iOS)、一台安装上述工具的电脑,确保手机和电脑处于同一局域网(如连接同一个 WiFi)。
    • 证书配置(关键):Fiddler 需配置 HTTPS 证书,才能抓取 App 的 HTTPS 请求;手机需安装 Fiddler 根证书并信任。
  2. Fiddler 基础配置(抓包准备)

    1. 打开 Fiddler,点击顶部菜单栏 Tools > Options > HTTPS
    2. 勾选 Capture HTTPS CONNECTsDecrypt HTTPS traffic,下拉选择 ...from all processes
    3. 点击 Actions > Trust Root Certificate,按提示安装证书并信任(Windows 需在证书管理器中确认)。
    4. 切换到 Connections 选项卡,勾选 Allow remote computers to connect,默认端口为 8888 (可自定义,需记住),点击 OK,重启 Fiddler 生效。
    5. 查看电脑局域网 IP:Windows 可通过 cmd > ipconfig 查看,Mac 用 ifconfig 查看。
  3. 手机代理配置(关键)

    1. 安卓手机:设置 > WLAN > 长按当前连接的 WiFi > 修改网络 > 勾选 "高级选项" > 代理选择 "手动" > 代理服务器主机名填电脑局域网 IP ,代理端口填Fiddler 端口(8888) > 保存。
    2. iOS 手机:设置 > WLAN > 点击当前 WiFi 右侧 i 图标 > 滚动到 "代理" > 选择 "手动" > 输入电脑 IP 和 Fiddler 端口 > 保存。
  4. 手机安装 Fiddler 证书

    1. 手机浏览器访问 http://电脑IP:8888(如 http://192.168.1.100:8888)。
    2. 点击页面中的 FiddlerRoot Certificate 下载并安装。
    3. 安卓:设置 > 安全 > 加密与凭据 > 从存储设备安装 > 选择下载的证书文件 > 命名后确认(部分安卓需开启 "安装未知来源证书" 权限)。
    4. iOS:设置 > 通用 > VPN 与设备管理 > 找到 Fiddler 证书 > 点击 "信任"。

核心流程:抓包 - 调试 - 验证

阶段 1:Fiddler 抓取 App 接口请求

目标:获取 App 真实的接口调用信息(请求 URL、方法、头信息、参数、Cookie 等),为 Postman 调试提供依据。

  1. 打开 Fiddler,确保左下角 Capture Traffic 处于开启状态(图标为箭头)。

  2. 打开待测 App,执行需要测试的业务操作(如登录、查询商品、提交订单)。

  3. Fiddler 左侧会话列表会实时显示 App 发起的所有网络请求,包括第三方 SDK 请求和目标接口请求。

  4. 筛选目标接口

    • 方法 1:关键词过滤。在 Fiddler 顶部搜索框输入接口域名(如 api.xxx.com),快速定位目标请求。
    • 方法 2:标记过滤。右键点击目标请求 > Mark > 选择颜色,方便区分。
    • 方法 3:隐藏无关请求。点击 Filters 选项卡 > 勾选 Use Filters > 配置域名过滤规则(只显示目标域名),减少干扰。
  5. 分析请求详情选中目标请求,右侧面板查看关键信息:

    • Inspectors > Headers:查看请求方法(GET/POST)、URL、请求头(Request Headers)、Cookie、Content-Type 等。
    • Inspectors > Body :查看请求参数(GET 方法参数在 URL 中,POST 方法参数在 RawJSON 标签下)。
    • Inspectors > Response:查看响应状态码、响应头、响应体(JSON/XML 格式),确认业务返回结果。

阶段 2:Postman 构造请求并功能验证

目标:基于 Fiddler 抓取的接口信息,在 Postman 中构造请求,验证接口功能正确性。

  1. 新建 Postman 请求

    1. 打开 Postman,点击左侧 + 号新建请求。
    2. 填写请求方法:与 Fiddler 中一致(如 POST)。
    3. 填写请求 URL:直接复制 Fiddler 中目标请求的完整 URL。
  2. 配置请求头(Headers)

    1. 切换到 Postman 的 Headers 标签页。
    2. 从 Fiddler 中复制请求头信息,粘贴到 Postman 中,关键头信息包括:
      • Content-Type:如 application/json(决定参数格式)
      • Authorization:如 Token、Bearer 令牌(登录态凭证)
      • Cookie:会话凭证
      • 自定义头:如 app-versiondevice-id 等 App 专属头
  3. 配置请求参数(Body)

    • Content-Typeapplication/json:切换到 Body > raw,选择 JSON 格式,复制 Fiddler 中 Body > Raw 里的 JSON 参数。
    • Content-Typeapplication/x-www-form-urlencoded:切换到 Body > form-datax-www-form-urlencoded,按 Fiddler 中的参数键值对填写。
    • 若为 GET 请求:参数直接拼接在 URL 中,或在 Params 标签页填写键值对。
  4. 执行请求并验证响应

    1. 点击 Postman 中的 Send 按钮,发送请求。
    2. 查看 Response 面板:
      • Status:确认状态码是否符合预期(如 200 表示成功,401 表示未授权)。
      • Body:查看响应数据是否与 Fiddler 中 App 实际接收的一致,是否符合业务规则。
      • Test Results:后续可添加断言脚本验证结果。

阶段 3:Fiddler 拦截修改请求,测试异常场景

目标:通过篡改请求参数 / 响应结果,验证 App 和接口的异常处理能力(如参数非法、权限不足、数据越界)。

  1. 拦截请求并修改参数

    1. Fiddler 中点击 Rules > Automatic Breakpoints > Before Requests(开启请求前断点)。
    2. 再次在 App 中执行目标操作,Fiddler 会在请求发送到服务器前暂停(会话列表中该请求标红)。
    3. 选中该请求,右侧 Inspectors > Body 标签页修改参数(如将 user_id=123 改为 user_id=9999,将 amount=100 改为 amount=-100)。
    4. 修改完成后,点击 Fiddler 顶部 Run to Completion(绿色箭头),发送修改后的请求到服务器。
    5. 查看 Postman 或 Fiddler 中的响应结果,验证接口是否能正确处理异常参数(如返回错误码、拒绝非法请求)。
  2. 拦截响应并修改结果

    1. Fiddler 中点击 Rules > Automatic Breakpoints > After Responses(开启响应后断点)。
    2. App 执行操作,服务器返回响应后 Fiddler 暂停(会话标红)。
    3. 右侧 Inspectors > Response > Raw 标签页修改响应数据(如将 success:true 改为 success:false,将 data:[] 改为 data:[...])。
    4. 点击 Run to Completion,将修改后的响应返回给 App。
    5. 观察 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.保存为用例集

    1. 点击 Postman 左侧 Collections > + 号新建集合(如 App接口测试集)。
    2. 将当前请求拖拽到集合中,可按业务模块(如登录模块、订单模块)创建子文件夹。
    3. 配置环境变量:若接口有测试 / 生产环境差异,可在 Environments 中创建环境(如 测试环境),配置 base_url 等变量,请求 URL 改为 {``{base_url}}/api/xxx,实现多环境切换。
  • 3.批量执行用例 选中集合,点击 Run,配置执行参数(如迭代次数、延迟时间),点击 Run 测试集,查看批量执行结果,生成测试报告。

收尾工作

  1. 测试完成后,关闭 Fiddler 的断点(Rules > Automatic Breakpoints > Disabled),避免影响其他网络请求。
  2. 关闭手机代理:恢复手机 WiFi 的代理设置为 "无",否则手机无法正常上网。
  3. 导出测试数据: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
相关推荐
默默学前端22 分钟前
ES6模板语法与字符串处理详解
前端·ecmascript·es6
lxh011330 分钟前
记忆函数 II 题解
前端·javascript
我不吃饼干37 分钟前
TypeScript 类型体操练习笔记(三)
前端·typescript
华仔啊40 分钟前
除了防抖和节流,还有哪些 JS 性能优化手段?
前端·javascript·vue.js
CHU7290351 小时前
随时随地学新知——线上网课教学小程序前端功能详解
前端·小程序
清粥油条可乐炸鸡1 小时前
motion入门教程
前端·css·react.js
这是个栗子1 小时前
【Vue3项目】电商前台项目(四)
前端·vue.js·pinia·表单校验·面包屑导航
前端Hardy1 小时前
Electrobun 正式登场:仅 12MB,JS 桌面开发迎来轻量化新方案!
前端·javascript·electron
树上有只程序猿1 小时前
新世界的入场券,不再只发给程序员
前端·人工智能
confiself1 小时前
deer-flow前端分析
前端