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
相关推荐
小王不爱笑1322 小时前
Postman 使用教程
测试工具·lua·postman
程序员杰哥2 小时前
Chrome浏览器+Postman做接口测试
自动化测试·软件测试·python·测试工具·测试用例·接口测试·postman
晚霞的不甘3 小时前
Flutter for OpenHarmony构建全功能视差侧滑菜单系统:从动效设计到多页面导航的完整实践
前端·学习·flutter·microsoft·前端框架·交互
黎子越3 小时前
python相关练习
java·前端·python
北极糊的狐3 小时前
若依项目vue前端启动键入npm run dev 报错:不是内部或外部命令,也不是可运行的程序或批处理文件。
前端·javascript·vue.js
XRJ040618xrj3 小时前
Nginx下构建PC站点
服务器·前端·nginx
We་ct3 小时前
LeetCode 289. 生命游戏:题解+优化,从基础到原地最优
前端·算法·leetcode·矩阵·typescript
有诺千金4 小时前
VUE3入门很简单(4)---组件通信(props)
前端·javascript·vue.js
2501_944711434 小时前
Vue-路由懒加载与组件懒加载
前端·javascript·vue.js