Skip to content

第1.5章:通过Postman测试API

学习时间: 50分钟


1. 为什么测试API?发射前检查

想象一下:在火箭发射前,工程师们会进行系统测试启动。如果跳过检查,任务可能会失败!

API测试是您的控制测试:

  • ✅ 检查“对接节点”的功能

  • 🛡️ 在实际使用前发现漏洞

  • 📊 确保数据传输无失真

💡 太空类比: Postman就像一个任务控制中心(ЦУП)的测试控制台,用于模拟所有场景:“如果请求一个不存在的星球数据会怎样?服务器能承受1000次请求/秒吗?”


2. Postman:“API飞行控制中心”

功能:

  • 📡 发送任何HTTP请求(GET, POST, PUT, DELETE)

  • 🔍 分析响应(状态码、请求头、JSON正文)

  • 🧪 编写自动化测试(JavaScript)

  • 🌐 使用环境变量(测试环境 vs 生产环境)

👉 下载Postman


3. 首次启动:测试行星API

步骤1:创建请求

  1. 打开Postman → New → Request

  2. 输入URL:https://api.spacexdata.com/v4/rockets

  3. 选择方法:GET

步骤2:发送“信号”

[任务控制中心] -- GET /planets --> [SpaceX服务器]

步骤3:分析遥测数据: - 状态:200 OK - 响应正文(JSON):包含参数的火箭列表

[
  {
    "name": "Falcon 1",
    "type": "rocket",
    "active": false,
    "stages": 2,
    "id": "5e9d0d95eda69955f709d1eb"
  },
  {
    "name": "Falcon 9",
    "type": "rocket",
    "active": true,
    "id": "5e9d0d95eda69973a809d1ec"
  }
]


4. 结构图:Postman组件

[工作区]
├── “Params”标签页(查询参数)
├── “Headers”标签页(请求头)
├── “Body”标签页(POST/PUT请求体)
├── “Tests”标签页(用于检查的脚本)
└── 响应面板(状态、时间、大小、正文)

5. 创建复杂场景:启动任务

测试:将新行星添加到目录

  1. 方法:POST

  2. URL:https://jsonplaceholder.typicode.com/posts (示例)

  3. 在Headers中:

     { "Content-Type": "application/json" }
    

  4. 在Body中 (raw → JSON):
    {
     "title": "New Exoplanet Found",
     "body": "Proxima Centauri b shows signs of a stable atmosphere.",
     "userId": 1
     }
    

在Tests中进行自动化检查:

// 检查状态
pm.test("Post created successfully", () => {
    pm.response.to.have.status(201);
});

// 检查响应的结构和数据
pm.test("Response contains the new post data", () => {
    const response = pm.response.json();
    pm.expect(response).to.have.property("id"); // 检查服务器是否分配了ID
    pm.expect(response.title).to.eql("New Exoplanet Found");
});


6. 环境变量:地球 vs 火星

如何在不同服务器(测试/生产)上进行测试?

  1. 创建环境:
  2. Localhttp://localhost:3000
  3. Productionhttps://api.nasa.gov

  4. 在请求中使用变量:

    {{base_url}}/planets  # 替换为当前URL
    

⚠️ 重要! 切勿在生产服务器上测试DELETE操作!


7. 集合:宇宙任务库

分组请求:

    📂 “NASA”集合
    ├── GET 行星
    ├── POST 新行星
    └── DELETE 行星(测试模式)
优势:

  • 🚀 一键运行所有测试
  • 📤 导出/导入配置
  • 👨‍🚀 团队协作

8. 自动化:定期卫星检查

通过Postman配置API监控

  1. Schedule → 每2小时

  2. 测试:

    pm.test("卫星在线", () => {
      pm.response.to.have.status(200);
      pm.expect(pm.response.json().signal).above(50); // 信号 >50%
    });
    

  3. 发生故障时在Slack/电子邮件中通知


巩固测验

1. Postman用于:

2. 成功创建对象时应预期哪个状态?

3. 在Postman中哪里编写自动化测试?

4. 环境变量的用途是:

5. 定期监控检查什么?


🚀 本章总结: Postman是您进行API测试的通用“控制台”。有了它,您可以: - 在启动前检查“机载系统”的运行情况 - 创建测试场景库 - 自动化宇宙服务的监控

📌 实践任务:

  1. 安装Postman
  2. 创建一个到SpaceX API的请求:GET https://api.spacexdata.com/v4/launches/latest
  3. 编写一个测试,检查:
  4. 响应状态为200
  5. name字段中包含单词“Falcon”
  6. 响应时间 < 500毫秒

恭喜您完成第1章!

您已经掌握了API的基本操作。在接下来的章节中,我们将构建自己的“宇宙飞船”——一个使用宇宙API的Web应用程序!

🌌 额外资源: