Postman 基础教程:新手快速上手API开发与测试 – wiki基地


Postman 基础教程:新手快速上手 API 开发与测试

在当今软件开发领域,应用程序接口(API,Application Programming Interface)无疑是构建现代互联系统的基石。无论是前端与后端的数据交互,微服务之间的通信,还是第三方服务的集成,API 都扮演着核心角色。然而,API 的开发、测试与管理常常伴随着复杂性。这时,一款功能强大、界面友好的工具便显得尤为重要——它就是 Postman

Postman 是一个广受欢迎的 API 平台,它简化了构建、测试、设计、修改、文档化和共享 API 的整个生命周期。对于新手而言,Postman 提供了一个直观的图形用户界面(GUI),使得无需编写复杂代码也能轻松地发送 HTTP 请求、检查响应、组织请求、编写自动化测试以及实现团队协作。

本文将从零开始,手把手带领你探索 Postman 的核心功能,让你在 API 开发与测试的旅程中迅速上手。我们将涵盖从安装到发送第一个请求,再到进阶的变量、测试脚本和团队协作等方方面面。

目录

  1. 引言:API 与 Postman 的重要性
    • 什么是 API?
    • 为什么选择 Postman?
  2. 第一章:初识 Postman – 安装与界面概览
    • Postman 的安装
    • 创建 Postman 账户
    • Postman 工作区界面导览
  3. 第二章:发送你的第一个 API 请求
    • HTTP 方法详解 (GET, POST, PUT, DELETE)
    • 构建 GET 请求
    • 理解 API 响应
    • 构建 POST 请求
    • 发送带有认证的请求 (Authorization)
  4. 第三章:组织与管理 – Collections 和 Environments
    • Collections (集合)
      • 什么是 Collection?
      • 创建和管理 Collection
      • Collection 的最佳实践
    • Environments (环境)
      • 什么是 Environment?
      • 创建和使用 Environment
      • Environment 变量的使用
  5. 第四章:自动化与智能化 – Variables 和 Scripts
    • 变量 (Variables) 的深入理解
      • 不同作用域的变量 (Global, Collection, Environment, Local, Data)
      • 变量的优先级
    • 预请求脚本 (Pre-request Scripts)
      • 什么是预请求脚本?
      • 常见应用场景 (生成动态数据、设置认证头)
    • 测试脚本 (Tests)
      • 什么是测试脚本?
      • 使用 pm.test 进行断言
      • 常见测试场景 (状态码、响应体数据、响应头)
      • 链式请求 (Chaining Requests)
  6. 第五章:团队协作与高级功能
    • Workspaces (工作区)
    • 分享 Collections
    • 模拟服务器 (Mock Servers)
    • 监控器 (Monitors)
    • Newman (CLI 命令行运行器) 简介
  7. 第六章:Postman 使用最佳实践与常见问题
    • 规范命名与文档化
    • 安全地处理敏感信息
    • 错误排查技巧
    • 持续学习与探索
  8. 结语

1. 引言:API 与 Postman 的重要性

什么是 API?

API,即应用程序接口,定义了不同软件组件之间交互的方式。你可以将其想象成一个餐厅的服务员:你(客户端)不需要知道厨房(服务器)是如何烹饪菜肴的,你只需要通过服务员(API)点餐(发送请求),服务员就会把你的订单传达给厨房,并把烹饪好的菜肴(响应数据)送回来。API 规范了请求的格式、数据的结构、支持的操作等,使得不同的应用程序能够相互理解和通信。

API 是现代软件架构的基石,它使得:
* 前后端分离:前端界面通过 API 获取和提交数据,与后端逻辑解耦。
* 微服务架构:不同的服务通过 API 相互调用,实现功能拆分与独立部署。
* 集成第三方服务:例如,支付接口、地图服务、社交媒体登录等。

为什么选择 Postman?

在众多 API 工具中,Postman 凭借其卓越的特性脱颖而出:
* 直观的用户界面:对于新手友好,无需复杂配置即可上手。
* 全功能 HTTP 客户端:支持所有 HTTP 方法、各种请求体类型、认证方式等。
* 请求组织与管理:通过 Collections 和 Workspaces 有效组织大量请求。
* 变量与环境管理:轻松切换开发、测试、生产环境,避免重复修改参数。
* 自动化测试:强大的脚本编写能力,实现 API 的自动化测试和数据校验。
* 团队协作:方便地分享请求、环境和测试,提升团队效率。
* 文档生成:自动生成 API 文档,方便团队成员和外部用户查阅。
* Mock Server:在后端尚未开发完成时,模拟 API 响应,加速前端开发。
* 扩展性强:支持 Pre-request Scripts 和 Tests 脚本,可实现高度定制化。

可以说,Postman 是 API 开发、测试、维护和协作全生命周期中不可或缺的利器。


2. 第一章:初识 Postman – 安装与界面概览

开始使用 Postman 的第一步是安装其桌面应用程序。

Postman 的安装

  1. 访问官网:打开浏览器,访问 Postman 官方网站:https://www.postman.com/downloads/
  2. 选择操作系统:根据你的操作系统(Windows, macOS, Linux),选择对应的版本进行下载。通常,官网会自动检测你的系统并推荐下载。
  3. 安装:下载完成后,双击安装包并按照提示进行安装。安装过程通常非常简单,只需一路点击“下一步”或“Agree”即可。
  4. 启动:安装完成后,Postman 会自动启动,或者你可以在应用程序列表中找到它并手动启动。

创建 Postman 账户

首次启动 Postman,它会提示你创建或登录 Postman 账户。强烈建议你创建一个账户(免费),因为它能带来诸多好处:
* 数据同步:你的所有 Collections、Environments 和历史记录都会同步到云端,即使更换电脑也不会丢失。
* 团队协作:只有登录账户才能进行 Collections 的分享和团队协作。
* 高级功能:某些高级功能(如 Mock Servers、Monitors)需要账户支持。

你可以选择使用 Google 账户、GitHub 账户或其他邮箱进行注册。

Postman 工作区界面导览

成功登录后,你将看到 Postman 的主界面。虽然功能众多,但其设计逻辑清晰。我们来认识一下主要区域:

  1. 侧边栏 (Sidebar)

    • Collections (集合):用于组织你的 API 请求。你可以创建文件夹来进一步分类。
    • APIs (API):管理 API 模式和版本(通常用于 OpenAPI/Swagger 规范)。
    • Environments (环境):存储不同环境下的变量(如开发、测试、生产环境的域名、认证密钥等)。
    • History (历史):记录你发送过的所有请求,方便快速回顾和重用。
    • Scratchpad (草稿本):如果你不想登录账户,可以在这里暂时存储请求(不建议,因为不安全且无法同步)。
  2. 顶部工具栏 (Header Bar)

    • Home (主页):回到 Postman 的主仪表盘,查看工作区、学习资源等。
    • Workspaces (工作区):切换或创建不同的工作区,可以用于区分个人项目和团队项目。
    • Invite (邀请):邀请团队成员加入工作区。
    • Search (搜索):搜索 Collections、请求、变量等。
    • Settings (设置):配置 Postman 的各项参数,如主题、代理、键盘快捷键等。
    • Notifications (通知):查看 Postman 的更新和团队消息。
    • Profile (个人资料):管理账户信息。
  3. 请求构建器 (Request Builder)

    • 这是 Postman 的核心区域,用于构建和发送 HTTP 请求。
    • HTTP 方法选择:下拉菜单选择 GET, POST, PUT, DELETE 等方法。
    • URL 输入框:输入 API 的端点(Endpoint)。
    • Params (查询参数):以键值对形式添加 URL 查询参数。
    • Authorization (认证):设置 API 的认证方式(如 Bearer Token, Basic Auth)。
    • Headers (请求头):设置自定义请求头(如 Content-Type, Accept)。
    • Body (请求体):对于 POST/PUT 等方法,设置请求体数据(如 JSON, FormData)。
    • Pre-request Script (预请求脚本):在请求发送前执行的 JavaScript 代码。
    • Tests (测试):在收到响应后执行的 JavaScript 代码,用于验证响应。
    • Settings (请求设置):如请求超时、是否跟随重定向等。
    • Send (发送) 按钮:发送当前的 HTTP 请求。
    • Save (保存) 按钮:将当前请求保存到 Collection 中。
  4. 响应查看器 (Response Viewer)

    • 发送请求后,API 的响应会显示在这里。
    • Status (状态码):显示 HTTP 状态码(如 200 OK, 404 Not Found, 500 Internal Server Error)。
    • Time (时间):显示请求耗时。
    • Size (大小):显示响应体的大小。
    • Body (响应体):显示 API 返回的数据,通常是 JSON、XML 或 HTML。
    • Cookies (Cookie):显示服务器设置的 Cookie。
    • Headers (响应头):显示服务器返回的响应头。
    • Test Results (测试结果):显示测试脚本的执行结果。
  5. 控制台 (Console)

    • 在底部工具栏,点击 Console 可以打开。
    • 它类似于浏览器的开发者控制台,用于查看 Postman 请求发送的详细信息、网络错误、脚本执行日志(console.log() 输出)等。对于调试非常有用。

熟悉这些区域是使用 Postman 的第一步。接下来,我们将动手操作,发送我们的第一个 API 请求。


3. 第二章:发送你的第一个 API 请求

我们将使用一些公开的 API 端点来演示,例如 JSONPlaceholder,它是一个免费的在线 REST API,用于测试和原型开发。

HTTP 方法详解 (GET, POST, PUT, DELETE)

在深入操作之前,先简单回顾一下最常用的 HTTP 方法:
* GET:用于从服务器获取资源。它是幂等的(重复请求结果不变)和安全的(不修改服务器状态)。
* 示例:获取用户列表、获取特定用户的信息。
* POST:用于向服务器提交数据,创建新资源。它不是幂等的。
* 示例:注册新用户、发布一篇文章。
* PUT:用于向服务器更新资源。通常用于替换现有资源。它是幂等的。
* 示例:更新用户的所有信息。
* DELETE:用于从服务器删除资源。它是幂等的。
* 示例:删除一个用户。
* PATCH:用于对资源进行局部更新。不是幂等的。
* 示例:更新用户的某一个字段(如邮箱)。

构建 GET 请求

GET 请求是最简单和最常见的 API 请求。

步骤:

  1. 新建请求:点击左侧侧边栏中的 Collections,然后点击加号 + 创建一个新的请求标签页。
  2. 选择方法:在请求构建器中,确保下拉菜单选择了 GET 方法。
  3. 输入 URL:在 URL 输入框中输入以下 URL:https://jsonplaceholder.typicode.com/posts/1
    • 这个 URL 表示我们要获取 ID 为 1 的帖子。
  4. 添加查询参数 (可选):如果 API 需要查询参数,你可以在 URL 后面手动添加,如 ?key1=value1&key2=value2,或者在 Params 选项卡中以键值对形式添加。Postman 会自动为你拼接 URL。
    • 例如,如果你想获取所有 ID 为 1 的帖子(虽然这个 API 只会返回一个),你可以输入 https://jsonplaceholder.typicode.com/posts,然后在 Params 选项卡中添加 id 作为 Key,1 作为 Value。
  5. 发送请求:点击蓝色的 Send 按钮。

理解 API 响应

发送请求后,响应查看器会立即显示服务器的响应:

  • Status (状态码):你会看到 200 OK
    • 2xx:表示请求成功。
    • 3xx:表示重定向。
    • 4xx:表示客户端错误(如 400 Bad Request, 401 Unauthorized, 404 Not Found)。
    • 5xx:表示服务器错误(如 500 Internal Server Error)。
  • Body (响应体):在 Body 选项卡中,你会看到一个 JSON 格式的数据:
    json
    {
    "userId": 1,
    "id": 1,
    "title": "sunt aut facere repellat provident occaecati excepturi optio reprehenderit",
    "body": "quia et suscipit\nsuscipit recusandae consequuntur expedita et cum\nreprehenderit molestiae ut ut quas totam\nnostrum rerum est autem sunt rem eveniet architecto"
    }

    Postman 会自动格式化 JSON,使其易于阅读。你可以选择 Pretty (漂亮格式化), Raw (原始格式) 或 Preview (预览) 来查看响应体。
  • Headers (响应头):在 Headers 选项卡中,你可以看到服务器返回的各种元数据,如 Content-Type(通常是 application/json)、DateServer 等。

恭喜!你已经成功发送并理解了一个 GET 请求。

构建 POST 请求

POST 请求通常用于向服务器提交数据以创建新资源。

步骤:

  1. 新建请求:再次点击 + 创建一个新的请求标签页。
  2. 选择方法:将方法下拉菜单改为 POST
  3. 输入 URL:输入目标 URL:https://jsonplaceholder.typicode.com/posts (这是一个创建新帖子的端点)。
  4. 配置请求体 (Body)
    • 点击 Body 选项卡。
    • 选择 raw (原始) 单选按钮。
    • 在旁边的下拉菜单中选择 JSON
    • 在文本区域中输入你想要发送的 JSON 数据:
      json
      {
      "title": "foo",
      "body": "bar",
      "userId": 1
      }
  5. 配置请求头 (Headers) (可选):通常,当你发送 JSON 数据时,需要设置 Content-Type 请求头为 application/json。Postman 在选择 rawJSON 后通常会自动为你添加。你可以点击 Headers 选项卡确认。
  6. 发送请求:点击 Send 按钮。

响应:
你会收到 201 Created 状态码,表示资源已成功创建。响应体中可能会包含新创建资源的 ID:
json
{
"title": "foo",
"body": "bar",
"userId": 1,
"id": 101 // 新创建的资源通常会有一个新的ID
}

发送带有认证的请求 (Authorization)

许多 API 需要认证才能访问,以确保安全性。Postman 支持多种认证方式。

以 Bearer Token 为例:

  1. 新建请求:创建一个新的请求。
  2. 选择方法和 URL:填写适当的 HTTP 方法和需要认证的 API URL。
  3. 点击 Authorization 选项卡
    • Type 下拉菜单中选择 Bearer Token
    • Token 输入框中填入你的 API 令牌(通常由 API 服务提供或通过登录接口获取)。例如,如果你的令牌是 your_jwt_token_here
  4. 发送请求:点击 Send

Postman 会自动在请求头中添加 Authorization: Bearer your_jwt_token_here。其他认证方式如 Basic Auth、OAuth 2.0 等也都在 Authorization 选项卡中提供支持。


4. 第三章:组织与管理 – Collections 和 Environments

随着你使用的 API 数量增加,你会发现单个请求管理起来非常混乱。Postman 的 Collections 和 Environments 正是为解决这个问题而生。

Collections (集合)

什么是 Collection?

Collection 是 Postman 中用于组织和管理相关 API 请求的文件夹。你可以将一个项目或模块的所有请求放在一个 Collection 中,方便查找、运行和共享。Collection 不仅可以存储请求,还可以存储变量、认证信息、预请求脚本和测试脚本,这些配置可以作用于 Collection 内的所有请求。

创建和管理 Collection
  1. 创建 Collection
    • 在侧边栏的 Collections 标签页,点击 + 按钮或点击右上角的 New,然后选择 Collection
    • 输入 Collection 名称(例如:“我的第一个 API 项目”)。
    • 你可以在这里为 Collection 添加描述、变量、认证信息等(我们后面会详细介绍)。
    • 点击 Create
  2. 添加请求到 Collection
    • 在你已经创建或正在编辑的请求标签页中,点击 Save 按钮。
    • 在弹出的 SAVE REQUEST 对话框中:
      • 输入请求名称(例如:“获取单篇帖子”)。
      • 选择你要保存到的 Collection (或在其下创建子文件夹)。
      • 点击 Save
    • 现在,你可以在侧边栏的 Collection 中看到你保存的请求了。
  3. 组织请求
    • 你可以在 Collection 中创建子文件夹来进一步组织请求(例如,“用户管理”、“订单管理”等)。右键点击 Collection -> Add Folder
    • 通过拖放可以轻松地移动请求和文件夹。
Collection 的最佳实践
  • 按项目或模块命名:一个 Collection 对应一个项目或一个大型模块。
  • 使用文件夹分类:在 Collection 内部,使用文件夹按功能(如用户认证、数据查询)或资源类型(如 /users, /products)进一步细分。
  • 添加描述:为 Collection、文件夹和每个请求添加清晰的描述,方便他人理解。
  • Collection 级别变量/认证:对于 Collection 内所有请求都通用的变量或认证信息,设置在 Collection 级别,避免重复配置。

Environments (环境)

什么是 Environment?

Environment(环境)是一组键值对形式的变量集合。它允许你根据不同的部署环境(如开发、测试、生产)切换 API 请求中的参数值,而无需修改请求本身。

例如,你的开发环境 API 域名是 dev.api.example.com,而生产环境是 prod.api.example.com。你可以在不同的 Environment 中定义 baseUrl 变量,并在请求中使用 {{baseUrl}} 来引用。切换 Environment,即可切换请求的目标服务器。

创建和使用 Environment
  1. 创建 Environment
    • 在侧边栏的 Environments 标签页,点击 + 按钮或点击右上角的 New,然后选择 Environment
    • 输入 Environment 名称(例如:“开发环境”)。
    • Variables 区域,添加键值对:
      • Variable (变量名):例如 baseUrl
      • Initial Value (初始值):例如 https://jsonplaceholder.typicode.com
      • Current Value (当前值):同样填写 https://jsonplaceholder.typicode.com (通常在团队协作时使用,初始值同步到云端,当前值是本地私有的)。
    • 点击 Save
    • 你可以创建多个 Environment,例如“测试环境”,其中 baseUrl 可能指向 https://test.api.example.com
  2. 激活 Environment
    • 在 Postman 界面的右上角,有一个下拉菜单,显示 No Environment。点击它,选择你创建的 Environment(例如:“开发环境”)。
  3. 在请求中使用 Environment 变量
    • 打开你的请求。
    • 在 URL 输入框中,将硬编码的域名部分替换为 {{baseUrl}}
      • 例如:将 https://jsonplaceholder.typicode.com/posts/1 改为 {{baseUrl}}/posts/1
    • 当光标停留在 {{baseUrl}} 上时,Postman 会显示当前 Environment 中该变量的值。
    • 你也可以在 HeadersBody 甚至 Pre-request ScriptTests 中使用 {{variableName}} 语法引用 Environment 变量。
  4. 切换 Environment
    • 只需要在右上角的下拉菜单中选择不同的 Environment,请求中引用的变量值就会相应改变,非常便捷。
Environment 变量的使用
  • API 基地址baseUrlapiHost
  • 认证令牌authTokenapiKey
  • 公共参数version
  • 用户凭证username, password (但在团队协作中要注意敏感信息的处理)

通过 Collection 和 Environment 的结合使用,你可以高效地管理复杂的 API 项目,无论是个人开发还是团队协作,都能极大地提升工作效率。


5. 第四章:自动化与智能化 – Variables 和 Scripts

Postman 的真正强大之处在于其变量系统和强大的脚本编写能力。它们使得 API 测试可以实现自动化、动态化和链式操作。

变量 (Variables) 的深入理解

我们之前已经接触了 Environment 变量,但 Postman 的变量系统更加丰富,具有不同的作用域和优先级。

  • 全局变量 (Global Variables):作用于整个 Postman 应用程序,任何请求和脚本都可以访问。
    • 设置:点击右上角齿轮图标 -> Globals
    • 用途:存储一些应用程序级别的常用变量,例如一个所有 API 都需要的通用认证密钥。
  • Collection 变量 (Collection Variables):作用于某个 Collection 及其内部的所有请求和脚本。
    • 设置:编辑 Collection -> Variables 选项卡。
    • 用途:存储某个项目或模块共用的变量,例如 Collection 级别的 authToken
  • 环境变量 (Environment Variables):我们已经介绍过,作用于当前选中的 Environment。
    • 设置:编辑 Environment -> Variables 选项卡。
    • 用途:区分不同部署环境的参数,如 baseUrl
  • 局部变量 (Local Variables):仅在单个请求或脚本的生命周期中有效,在请求完成后即被销毁。
    • 设置:主要通过 Pre-request Script 或 Test Script 中的 pm.variables.set("varName", "value") 来设置。
    • 用途:存储临时数据,如一次性生成的随机数。
  • 数据变量 (Data Variables):通过外部数据文件(如 CSV 或 JSON)导入,用于 Collection Runner。
    • 用途:进行数据驱动测试,使用不同的输入数据多次运行同一个请求。

变量的优先级
当有同名变量存在时,Postman 会按照以下优先级使用变量:
Data Variables > Local Variables > Environment Variables > Collection Variables > Global Variables
这意味着,局部变量会覆盖环境变量,环境变量会覆盖集合变量,以此类推。

预请求脚本 (Pre-request Scripts)

什么是预请求脚本?

预请求脚本是在发送 HTTP 请求之前执行的 JavaScript 代码。它允许你在请求发出前动态地修改请求参数、生成数据、设置认证头等。

常见应用场景
  1. 生成动态数据
    • 生成随机 ID、时间戳、唯一字符串等。
    • 示例:在 Pre-request Script 选项卡中,输入:
      javascript
      // 生成一个随机UUID作为请求体的一部分
      pm.environment.set("randomId", Math.random().toString(36).substring(2, 15) + Math.random().toString(36).substring(2, 15));
      // 生成一个当前时间戳
      pm.environment.set("timestamp", Date.now());

      然后在请求体或 URL 中使用 {{randomId}}{{timestamp}}
  2. 设置动态认证信息
    • 在 Pre-request Script 中计算签名或获取 JWT Token,并将其设置到请求头中。
    • 示例 (假设你需要一个动态的 x-api-key):
      javascript
      const apiKey = "my_dynamic_api_key_" + new Date().getFullYear();
      pm.environment.set("dynamicApiKey", apiKey);

      然后在 Headers 选项卡中添加 x-api-key: {{dynamicApiKey}}
  3. 处理 OAuth 2.0 刷新令牌
    • 在请求前检查 access_token 是否过期,如果过期,则发送一个请求去获取新的 access_token,并更新环境变量。
如何编写 Pre-request Script
  • 在请求构建器中,点击 Pre-request Script 选项卡。
  • 使用 Postman 提供的 pm 对象进行操作。pm 对象提供了访问请求、响应、变量、环境变量等的方法。
    • pm.environment.set("key", "value"):设置环境变量。
    • pm.collectionVariables.set("key", "value"):设置 Collection 变量。
    • pm.globals.set("key", "value"):设置全局变量。
    • pm.variables.set("key", "value"):设置局部变量(推荐用于脚本内部的临时变量)。
    • pm.request:访问当前请求的属性。
    • pm.sendRequest():在预请求脚本中发送另一个 HTTP 请求。
  • 使用 console.log("message") 在 Postman 控制台打印调试信息。

测试脚本 (Tests)

什么是测试脚本?

测试脚本是在接收到 API 响应后执行的 JavaScript 代码。它们主要用于验证响应是否符合预期,从而实现自动化测试。

使用 pm.test 进行断言

Postman 的测试脚本基于 Chai Assertion Library,通过 pm.test() 函数定义测试用例。

示例
“`javascript
// 测试用例1:检查响应状态码是否为200
pm.test(“Status code is 200 OK”, function () {
pm.response.to.have.status(200);
});

// 测试用例2:检查响应体是否为JSON格式
pm.test(“Response is JSON”, function () {
pm.response.to.be.json;
});

// 测试用例3:检查响应体中是否存在某个属性
pm.test(“Response body contains ‘id’ property”, function () {
const jsonData = pm.response.json();
pm.expect(jsonData).to.have.property(‘id’);
});

// 测试用例4:检查响应体中某个属性的值是否符合预期
pm.test(“ID is 1”, function () {
const jsonData = pm.response.json();
pm.expect(jsonData.id).to.eql(1); // 注意使用 eql 进行深比较
});

// 测试用例5:检查响应头中是否存在特定信息
pm.test(“Content-Type header is present”, function () {
pm.response.to.have.header(“Content-Type”);
});

// 测试用例6:检查响应头中某个属性的值
pm.test(“Content-Type header contains application/json”, function () {
pm.expect(pm.response.headers.get(“Content-Type”)).to.include(“application/json”);
});
``
在发送请求后,点击响应查看器中的
Test Results` 选项卡,你将看到每个测试用例的通过或失败状态。

常见测试场景
  • 状态码校验:确保返回正确的 HTTP 状态码(200、201、400、404、500等)。
  • 响应体数据校验
    • 检查响应体是否为空或不为空。
    • 检查响应体的数据类型(JSON、XML)。
    • 检查响应体中是否存在特定属性。
    • 检查属性的值是否符合预期。
    • 检查数组长度或包含特定元素。
  • 响应头校验:检查 Content-TypeCache-ControlSet-Cookie 等响应头。
  • 响应时间校验:确保 API 响应在可接受的时间范围内。
    • pm.test("Response time is less than 200ms", function () { pm.expect(pm.response.responseTime).to.be.below(200); });
链式请求 (Chaining Requests)

链式请求是指将一个 API 请求的响应数据作为后续 API 请求的输入。这是自动化测试和工作流中非常重要的一个概念。

实现方式
在第一个请求的 Tests 脚本中,从响应体中提取所需的数据,并将其保存为环境变量或 Collection 变量。
然后在第二个请求中,使用这些变量。

示例
请求1 (登录获取 Token):
* 方法:POST
* URL:{{baseUrl}}/login
* Body:{"username": "test", "password": "password"}
* Tests 脚本:
javascript
pm.test("Login successful", function () {
pm.response.to.have.status(200);
const jsonData = pm.response.json();
pm.expect(jsonData).to.have.property('token');
pm.environment.set("authToken", jsonData.token); // 提取token并保存为环境变量
});

请求2 (使用 Token 获取用户数据):
* 方法:GET
* URL:{{baseUrl}}/users/profile
* Authorization:选择 Bearer Token,并在 Token 字段中输入 {{authToken}}
* 发送请求2之前,确保已运行请求1,使得 authToken 环境变量已设置。

通过这种方式,你可以构建复杂的 API 工作流,模拟用户行为或测试多步骤业务流程。


6. 第五章:团队协作与高级功能

Postman 不仅仅是一个强大的个人工具,它也为团队协作提供了卓越的支持。

Workspaces (工作区)

Workspaces 是 Postman 中最高级别的组织单元。它们用于将相关的 Collection、Environment、API 定义和 Mock Server 组织在一起。
* 个人工作区:默认情况下,你有一个“My Workspace”或“个人工作区”。
* 团队工作区:你可以创建团队工作区,邀请成员加入,共享资源。在团队工作区中,所有成员都可以访问和修改共享的 Collections 和 Environments。

创建/切换工作区:在顶部工具栏点击 Workspaces 下拉菜单,选择 New Workspace 或切换现有工作区。

分享 Collections

团队协作的核心在于共享你的 API 定义和测试用例。
* 通过云同步:当你的 Collection 存储在 Postman 账户中时,它会自动同步。在团队工作区中,所有成员都可以访问。
* 导出/导入:你可以将 Collection 导出为 JSON 文件,然后通过邮件、版本控制系统等方式分享给没有 Postman 账户或不在同一工作区的用户。对方可以导入这个 JSON 文件。

模拟服务器 (Mock Servers)

Mock Server 允许你在后端 API 尚未开发完成时,模拟 API 的响应。这对于前端开发人员来说尤其有用,他们可以根据 Mock Server 提供的假数据进行开发,而不必等待后端就绪。
1. 创建 Mock Server:在侧边栏的 Mock Servers 标签页,点击 + 或顶部工具栏 New -> Mock Server
2. 选择 Collection:选择你想要模拟的 Collection 中的请求。
3. 定义响应:你可以为 Collection 中的每个请求定义一个或多个示例响应(例如,成功响应、错误响应)。当 Mock Server 接收到匹配的请求时,它会返回对应的示例响应。
4. 使用 Mock Server URL:Postman 会为你的 Mock Server 生成一个唯一的 URL。你可以在请求中将 baseUrl 切换到这个 Mock Server URL,然后发送请求,Mock Server 就会返回你预定义的响应。

监控器 (Monitors)

Monitors 允许你定期运行 Collection 中的请求,并监控 API 的性能和可用性。
* 你可以设置监控的频率(例如,每 5 分钟),选择运行的地理位置。
* 如果 API 响应时间过长或返回错误,Postman 会通过邮件等方式通知你。
这对于确保你的生产 API 始终在线且响应迅速非常关键。

Newman (CLI 命令行运行器) 简介

Newman 是 Postman 的命令行集合运行器。它允许你在命令行中运行 Postman Collections,而无需启动 Postman 应用程序。
* CI/CD 集成:Newman 是将 Postman 测试集成到持续集成/持续部署 (CI/CD) 流程中的关键工具。例如,每次代码提交后,CI 工具可以自动调用 Newman 运行 API 自动化测试。
* 自动化测试报告:Newman 可以生成多种格式的测试报告 (HTML, JSON, JUnit XML),方便查看测试结果。

安装 Newman
npm install -g newman (需要先安装 Node.js)
运行 Collection
newman run your_collection.json -e your_environment.json

虽然 Newman 的使用稍微超出了“基础教程”的范畴,但了解它的存在对于展望 Postman 的高级应用非常重要。


7. 第六章:Postman 使用最佳实践与常见问题

为了更高效、安全地使用 Postman,遵循一些最佳实践是很有必要的。

规范命名与文档化

  • Collection 命名:清晰反映项目或模块名称。
  • 文件夹命名:按功能、资源或业务流命名,逻辑清晰。
  • 请求命名:简洁明了,描述请求的目的(如 “GET 获取所有用户”, “POST 创建新用户”)。
  • 添加描述:为 Collection、文件夹和每个请求添加详细描述,说明其用途、参数、响应示例等。这对于团队成员理解和使用 API 至关重要。

安全地处理敏感信息

  • 避免硬编码敏感数据:绝不要在请求的 URL、Headers 或 Body 中硬编码 API Key、密码、Token 等敏感信息。
  • 使用环境变量:将敏感信息存储为环境变量。在团队协作时,Initial Value 可以留空或设置为占位符,让每个团队成员在 Current Value 中填写自己的私有值。
  • Git 忽略敏感文件:如果你导出了 Collection 和 Environment JSON 文件并将其放入版本控制系统,确保你的 .gitignore 文件排除了包含敏感信息的 Environment 文件。

错误排查技巧

  • 查看状态码:首先检查响应的状态码。
    • 2xx:成功。
    • 4xx:客户端错误(可能是你的请求有问题,如参数错误、认证失败、资源未找到)。
    • 5xx:服务器错误(可能是后端服务问题)。
  • 检查响应体:仔细阅读响应体,尤其是在 4xx5xx 情况下,服务器通常会返回错误详情。
  • 查看响应头:检查 Content-Type 是否是你期望的,Set-Cookie 是否设置了 Cookie,WWW-Authenticate 是否提示了认证问题。
  • 使用 Postman Console
    • 打开 Console (底部工具栏或 View -> Show Postman Console)。
    • 在这里可以看到所有发送的请求、接收的响应的原始数据,以及 Pre-request Script 和 Test Script 中的 console.log() 输出。这是调试脚本和网络问题的利器。
  • 检查网络代理:如果你的网络环境使用了代理,确保 Postman 的代理设置正确(Settings -> Proxy)。

持续学习与探索

  • Postman 官方文档:Postman 的官方文档非常详尽,是学习高级功能的最佳资源。
  • 社区论坛:参与 Postman 社区,可以找到很多常见问题的解决方案和使用技巧。
  • 练习:理论知识是基础,但只有通过大量的实践和尝试,你才能真正掌握 Postman 的强大功能。

8. 结语

恭喜你完成了这篇 Postman 基础教程的学习!从安装 Postman 到发送第一个 API 请求,再到掌握 Collection、Environment、变量和脚本,你已经迈出了 API 开发与测试的重要一步。

Postman 不仅仅是一个请求发送工具,更是一个全面的 API 平台,它能够极大地提升你在 API 生命周期各个阶段的效率。无论是个人开发者还是大型团队,Postman 都能成为你不可或缺的伙伴。

请记住,技术学习是一个持续的过程。本文为你提供了坚实的基础,但 Postman 还有许多高级功能等待你去探索,例如 API Schema 定义、API 生产、Flows、HTTP/2 支持等。不断练习,善用 Postman 的各项功能,你将能够更自信、更高效地处理各种 API 相关的任务。

现在,是时候打开 Postman,开始你的 API 探索之旅了!祝你成功!


发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

滚动至顶部