Postman 基础教程:新手快速上手 API 开发与测试
在当今软件开发领域,应用程序接口(API,Application Programming Interface)无疑是构建现代互联系统的基石。无论是前端与后端的数据交互,微服务之间的通信,还是第三方服务的集成,API 都扮演着核心角色。然而,API 的开发、测试与管理常常伴随着复杂性。这时,一款功能强大、界面友好的工具便显得尤为重要——它就是 Postman。
Postman 是一个广受欢迎的 API 平台,它简化了构建、测试、设计、修改、文档化和共享 API 的整个生命周期。对于新手而言,Postman 提供了一个直观的图形用户界面(GUI),使得无需编写复杂代码也能轻松地发送 HTTP 请求、检查响应、组织请求、编写自动化测试以及实现团队协作。
本文将从零开始,手把手带领你探索 Postman 的核心功能,让你在 API 开发与测试的旅程中迅速上手。我们将涵盖从安装到发送第一个请求,再到进阶的变量、测试脚本和团队协作等方方面面。
目录
- 引言:API 与 Postman 的重要性
- 什么是 API?
- 为什么选择 Postman?
- 第一章:初识 Postman – 安装与界面概览
- Postman 的安装
- 创建 Postman 账户
- Postman 工作区界面导览
- 第二章:发送你的第一个 API 请求
- HTTP 方法详解 (GET, POST, PUT, DELETE)
- 构建 GET 请求
- 理解 API 响应
- 构建 POST 请求
- 发送带有认证的请求 (Authorization)
- 第三章:组织与管理 – Collections 和 Environments
- Collections (集合)
- 什么是 Collection?
- 创建和管理 Collection
- Collection 的最佳实践
- Environments (环境)
- 什么是 Environment?
- 创建和使用 Environment
- Environment 变量的使用
- Collections (集合)
- 第四章:自动化与智能化 – Variables 和 Scripts
- 变量 (Variables) 的深入理解
- 不同作用域的变量 (Global, Collection, Environment, Local, Data)
- 变量的优先级
- 预请求脚本 (Pre-request Scripts)
- 什么是预请求脚本?
- 常见应用场景 (生成动态数据、设置认证头)
- 测试脚本 (Tests)
- 什么是测试脚本?
- 使用
pm.test进行断言 - 常见测试场景 (状态码、响应体数据、响应头)
- 链式请求 (Chaining Requests)
- 变量 (Variables) 的深入理解
- 第五章:团队协作与高级功能
- Workspaces (工作区)
- 分享 Collections
- 模拟服务器 (Mock Servers)
- 监控器 (Monitors)
- Newman (CLI 命令行运行器) 简介
- 第六章:Postman 使用最佳实践与常见问题
- 规范命名与文档化
- 安全地处理敏感信息
- 错误排查技巧
- 持续学习与探索
- 结语
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 的安装
- 访问官网:打开浏览器,访问 Postman 官方网站:
https://www.postman.com/downloads/ - 选择操作系统:根据你的操作系统(Windows, macOS, Linux),选择对应的版本进行下载。通常,官网会自动检测你的系统并推荐下载。
- 安装:下载完成后,双击安装包并按照提示进行安装。安装过程通常非常简单,只需一路点击“下一步”或“Agree”即可。
- 启动:安装完成后,Postman 会自动启动,或者你可以在应用程序列表中找到它并手动启动。
创建 Postman 账户
首次启动 Postman,它会提示你创建或登录 Postman 账户。强烈建议你创建一个账户(免费),因为它能带来诸多好处:
* 数据同步:你的所有 Collections、Environments 和历史记录都会同步到云端,即使更换电脑也不会丢失。
* 团队协作:只有登录账户才能进行 Collections 的分享和团队协作。
* 高级功能:某些高级功能(如 Mock Servers、Monitors)需要账户支持。
你可以选择使用 Google 账户、GitHub 账户或其他邮箱进行注册。
Postman 工作区界面导览
成功登录后,你将看到 Postman 的主界面。虽然功能众多,但其设计逻辑清晰。我们来认识一下主要区域:
-
侧边栏 (Sidebar):
- Collections (集合):用于组织你的 API 请求。你可以创建文件夹来进一步分类。
- APIs (API):管理 API 模式和版本(通常用于 OpenAPI/Swagger 规范)。
- Environments (环境):存储不同环境下的变量(如开发、测试、生产环境的域名、认证密钥等)。
- History (历史):记录你发送过的所有请求,方便快速回顾和重用。
- Scratchpad (草稿本):如果你不想登录账户,可以在这里暂时存储请求(不建议,因为不安全且无法同步)。
-
顶部工具栏 (Header Bar):
- Home (主页):回到 Postman 的主仪表盘,查看工作区、学习资源等。
- Workspaces (工作区):切换或创建不同的工作区,可以用于区分个人项目和团队项目。
- Invite (邀请):邀请团队成员加入工作区。
- Search (搜索):搜索 Collections、请求、变量等。
- Settings (设置):配置 Postman 的各项参数,如主题、代理、键盘快捷键等。
- Notifications (通知):查看 Postman 的更新和团队消息。
- Profile (个人资料):管理账户信息。
-
请求构建器 (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 中。
-
响应查看器 (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 (测试结果):显示测试脚本的执行结果。
-
控制台 (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 请求。
步骤:
- 新建请求:点击左侧侧边栏中的
Collections,然后点击加号+创建一个新的请求标签页。 - 选择方法:在请求构建器中,确保下拉菜单选择了
GET方法。 - 输入 URL:在 URL 输入框中输入以下 URL:
https://jsonplaceholder.typicode.com/posts/1- 这个 URL 表示我们要获取 ID 为 1 的帖子。
- 添加查询参数 (可选):如果 API 需要查询参数,你可以在 URL 后面手动添加,如
?key1=value1&key2=value2,或者在Params选项卡中以键值对形式添加。Postman 会自动为你拼接 URL。- 例如,如果你想获取所有 ID 为 1 的帖子(虽然这个 API 只会返回一个),你可以输入
https://jsonplaceholder.typicode.com/posts,然后在Params选项卡中添加id作为 Key,1作为 Value。
- 例如,如果你想获取所有 ID 为 1 的帖子(虽然这个 API 只会返回一个),你可以输入
- 发送请求:点击蓝色的
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)、Date、Server等。
恭喜!你已经成功发送并理解了一个 GET 请求。
构建 POST 请求
POST 请求通常用于向服务器提交数据以创建新资源。
步骤:
- 新建请求:再次点击
+创建一个新的请求标签页。 - 选择方法:将方法下拉菜单改为
POST。 - 输入 URL:输入目标 URL:
https://jsonplaceholder.typicode.com/posts(这是一个创建新帖子的端点)。 - 配置请求体 (Body):
- 点击
Body选项卡。 - 选择
raw(原始) 单选按钮。 - 在旁边的下拉菜单中选择
JSON。 - 在文本区域中输入你想要发送的 JSON 数据:
json
{
"title": "foo",
"body": "bar",
"userId": 1
}
- 点击
- 配置请求头 (Headers) (可选):通常,当你发送 JSON 数据时,需要设置
Content-Type请求头为application/json。Postman 在选择raw和JSON后通常会自动为你添加。你可以点击Headers选项卡确认。 - 发送请求:点击
Send按钮。
响应:
你会收到 201 Created 状态码,表示资源已成功创建。响应体中可能会包含新创建资源的 ID:
json
{
"title": "foo",
"body": "bar",
"userId": 1,
"id": 101 // 新创建的资源通常会有一个新的ID
}
发送带有认证的请求 (Authorization)
许多 API 需要认证才能访问,以确保安全性。Postman 支持多种认证方式。
以 Bearer Token 为例:
- 新建请求:创建一个新的请求。
- 选择方法和 URL:填写适当的 HTTP 方法和需要认证的 API URL。
- 点击 Authorization 选项卡:
- 在
Type下拉菜单中选择Bearer Token。 - 在
Token输入框中填入你的 API 令牌(通常由 API 服务提供或通过登录接口获取)。例如,如果你的令牌是your_jwt_token_here。
- 在
- 发送请求:点击
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
- 创建 Collection:
- 在侧边栏的
Collections标签页,点击+按钮或点击右上角的New,然后选择Collection。 - 输入 Collection 名称(例如:“我的第一个 API 项目”)。
- 你可以在这里为 Collection 添加描述、变量、认证信息等(我们后面会详细介绍)。
- 点击
Create。
- 在侧边栏的
- 添加请求到 Collection:
- 在你已经创建或正在编辑的请求标签页中,点击
Save按钮。 - 在弹出的
SAVE REQUEST对话框中:- 输入请求名称(例如:“获取单篇帖子”)。
- 选择你要保存到的 Collection (或在其下创建子文件夹)。
- 点击
Save。
- 现在,你可以在侧边栏的 Collection 中看到你保存的请求了。
- 在你已经创建或正在编辑的请求标签页中,点击
- 组织请求:
- 你可以在 Collection 中创建子文件夹来进一步组织请求(例如,“用户管理”、“订单管理”等)。右键点击 Collection ->
Add Folder。 - 通过拖放可以轻松地移动请求和文件夹。
- 你可以在 Collection 中创建子文件夹来进一步组织请求(例如,“用户管理”、“订单管理”等)。右键点击 Collection ->
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
- 创建 Environment:
- 在侧边栏的
Environments标签页,点击+按钮或点击右上角的New,然后选择Environment。 - 输入 Environment 名称(例如:“开发环境”)。
- 在
Variables区域,添加键值对:Variable(变量名):例如baseUrlInitial Value(初始值):例如https://jsonplaceholder.typicode.comCurrent Value(当前值):同样填写https://jsonplaceholder.typicode.com(通常在团队协作时使用,初始值同步到云端,当前值是本地私有的)。
- 点击
Save。 - 你可以创建多个 Environment,例如“测试环境”,其中
baseUrl可能指向https://test.api.example.com。
- 在侧边栏的
- 激活 Environment:
- 在 Postman 界面的右上角,有一个下拉菜单,显示
No Environment。点击它,选择你创建的 Environment(例如:“开发环境”)。
- 在 Postman 界面的右上角,有一个下拉菜单,显示
- 在请求中使用 Environment 变量:
- 打开你的请求。
- 在 URL 输入框中,将硬编码的域名部分替换为
{{baseUrl}}。- 例如:将
https://jsonplaceholder.typicode.com/posts/1改为{{baseUrl}}/posts/1。
- 例如:将
- 当光标停留在
{{baseUrl}}上时,Postman 会显示当前 Environment 中该变量的值。 - 你也可以在
Headers、Body甚至Pre-request Script和Tests中使用{{variableName}}语法引用 Environment 变量。
- 切换 Environment:
- 只需要在右上角的下拉菜单中选择不同的 Environment,请求中引用的变量值就会相应改变,非常便捷。
Environment 变量的使用
- API 基地址:
baseUrl,apiHost - 认证令牌:
authToken,apiKey - 公共参数:
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。
- 设置:编辑 Collection ->
- 环境变量 (Environment Variables):我们已经介绍过,作用于当前选中的 Environment。
- 设置:编辑 Environment ->
Variables选项卡。 - 用途:区分不同部署环境的参数,如
baseUrl。
- 设置:编辑 Environment ->
- 局部变量 (Local Variables):仅在单个请求或脚本的生命周期中有效,在请求完成后即被销毁。
- 设置:主要通过 Pre-request Script 或 Test Script 中的
pm.variables.set("varName", "value")来设置。 - 用途:存储临时数据,如一次性生成的随机数。
- 设置:主要通过 Pre-request Script 或 Test Script 中的
- 数据变量 (Data Variables):通过外部数据文件(如 CSV 或 JSON)导入,用于 Collection Runner。
- 用途:进行数据驱动测试,使用不同的输入数据多次运行同一个请求。
变量的优先级:
当有同名变量存在时,Postman 会按照以下优先级使用变量:
Data Variables > Local Variables > Environment Variables > Collection Variables > Global Variables
这意味着,局部变量会覆盖环境变量,环境变量会覆盖集合变量,以此类推。
预请求脚本 (Pre-request Scripts)
什么是预请求脚本?
预请求脚本是在发送 HTTP 请求之前执行的 JavaScript 代码。它允许你在请求发出前动态地修改请求参数、生成数据、设置认证头等。
常见应用场景
- 生成动态数据:
- 生成随机 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}}。
- 设置动态认证信息:
- 在 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}}。
- 处理 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-Type、Cache-Control、Set-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:服务器错误(可能是后端服务问题)。
- 检查响应体:仔细阅读响应体,尤其是在
4xx或5xx情况下,服务器通常会返回错误详情。 - 查看响应头:检查
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 探索之旅了!祝你成功!