Skip to content

📮 Postman 全面指南

一、Postman 概述

Postman 是一款强大的 API 开发和测试工具,它提供了友好的用户界面,可以帮助开发者设计、测试、调试和文档化 API。Postman 支持各种 HTTP 方法、身份验证方式、请求参数和响应处理,是 API 开发过程中不可或缺的工具。

1.1 Postman 的核心功能

  • API 测试:支持各种 HTTP 请求方法,参数设置,断言和测试脚本
  • API 文档:自动生成和分享交互式 API 文档
  • API 监控:监控 API 性能和可用性
  • Mock 服务:创建模拟 API 响应,支持前端开发和测试
  • 协作开发:团队协作,共享集合和环境
  • 自动化工作流:创建复杂的测试场景和自动化工作流

1.2 Postman 的应用场景

  • API 开发和调试
  • API 测试自动化
  • API 文档编写和分享
  • API 性能监控
  • 前后端并行开发(通过 Mock 服务)
  • 团队协作开发 API

二、Postman 安装与配置

2.1 安装 Postman

Postman 提供了跨平台的桌面应用程序,可以在 Windows、macOS 和 Linux 上运行。

2.1.1 下载安装

  1. 访问 Postman 官网
  2. 根据您的操作系统选择相应的版本下载
  3. 按照安装向导完成安装

2.1.2 注册账户

安装完成后,需要注册一个 Postman 账户才能使用所有功能:

  1. 打开 Postman 应用程序
  2. 点击 "Sign Up Free" 按钮
  3. 填写邮箱、用户名和密码,或者使用 Google/GitHub 账户登录

2.2 配置 Postman

安装完成后,可以根据个人偏好进行一些基本配置。

2.2.1 界面语言设置

  1. 点击右上角的用户头像
  2. 选择 "Settings"
  3. 在 "General" 选项卡中找到 "Language"
  4. 选择您需要的语言(支持中文)

2.2.2 主题设置

  1. 点击右上角的用户头像
  2. 选择 "Settings"
  3. 在 "General" 选项卡中找到 "Theme"
  4. 选择 "Light"、"Dark" 或 "System"

三、Postman 基础使用

3.1 工作空间(Workspace)

工作空间是 Postman 中组织和协作的基本单位,每个工作空间可以包含多个集合、环境和 mock 服务。

3.1.1 创建工作空间

  1. 在左侧导航栏点击 "Workspaces"
  2. 点击 "Create Workspace" 按钮
  3. 填写工作空间名称、描述,并选择可见性(Public/Private)
  4. 点击 "Create Workspace" 完成创建

3.1.2 加入工作空间

  1. 在左侧导航栏点击 "Workspaces"
  2. 点击 "Join Workspace" 按钮
  3. 输入工作空间的邀请链接或搜索工作空间名称
  4. 点击 "Request to Join" 或 "Join" 按钮

3.2 集合(Collection)

集合是 Postman 中组织 API 请求的方式,一个集合可以包含多个请求、文件夹和子文件夹,便于分类和管理。

3.2.1 创建集合

  1. 在左侧导航栏点击 "Collections"
  2. 点击 "New Collection" 按钮
  3. 填写集合名称和描述
  4. 可以添加前置脚本(Pre-request Script)、测试脚本(Tests)和变量
  5. 点击 "Create" 完成创建

3.2.2 导入导出集合

导出集合:

  1. 右键点击需要导出的集合
  2. 选择 "Export"
  3. 选择导出格式(推荐 Collection v2.1)
  4. 选择保存位置,点击 "Save"

导入集合:

  1. 点击左侧导航栏的 "Import" 按钮
  2. 选择 "File"、"Link"、"Paste Raw Text" 或 "Folder"
  3. 选择需要导入的文件或输入链接/文本
  4. 点击 "Import" 完成导入

3.3 环境与变量

环境变量是 Postman 中非常强大的功能,可以帮助我们管理不同环境下的配置,如开发环境、测试环境和生产环境的 API 地址、端口、认证信息等。

3.3.1 创建环境

  1. 在左侧导航栏点击 "Environments"
  2. 点击 "New Environment" 按钮
  3. 填写环境名称
  4. 添加环境变量(变量名、初始值和当前值)
  5. 点击 "Save" 完成创建

3.3.2 使用变量

在请求 URL、参数、头信息或请求体中,可以使用 {{变量名}} 的形式引用变量。

示例:

https://{{base_url}}/api/{{api_version}}/users

3.3.3 变量类型

Postman 支持多种类型的变量:

  • 全局变量(Global Variables):在所有工作空间和集合中可用
  • 环境变量(Environment Variables):在选定的环境中可用
  • 集合变量(Collection Variables):在选定的集合中可用
  • 局部变量(Local Variables):只在当前请求或测试脚本中临时可用
  • 数据变量(Data Variables):通过数据文件(如 CSV、JSON)导入的变量

3.4 创建和发送请求

Postman 支持各种 HTTP 请求方法,如 GET、POST、PUT、DELETE 等。

3.4.1 基本请求

  1. 点击左上角的 "New" 按钮,选择 "Request"
  2. 填写请求名称和描述,选择所属的集合
  3. 选择请求方法(GET、POST、PUT、DELETE 等)
  4. 输入请求 URL
  5. 添加请求头(Headers)、请求参数(Params)或请求体(Body)
  6. 点击 "Send" 按钮发送请求

3.4.2 请求参数

在 "Params" 标签页中,可以添加查询参数(Query Params)和路径参数(Path Variables)。

示例:

https://api.example.com/users?page=1&limit=10
参数名描述
page1页码
limit10每页数量

3.4.3 请求头

在 "Headers" 标签页中,可以添加请求头信息。

常用请求头:

头名称描述
Content-Typeapplication/json请求体类型
AuthorizationBearer 认证信息
Acceptapplication/json接受的响应类型

3.4.4 请求体

在 "Body" 标签页中,可以添加请求体内容。Postman 支持多种请求体格式:

  • none:无请求体
  • form-data:表单数据(支持文件上传)
  • x-www-form-urlencoded:表单编码数据
  • raw:原始数据(支持 JSON、XML、HTML、Text、JavaScript 等)
  • binary:二进制数据(如文件)
  • graphql:GraphQL 查询

JSON 请求体示例:

json
{
  "name": "张三",
  "email": "zhangsan@example.com",
  "age": 28
}

3.5 查看响应

发送请求后,可以在下方的响应区域查看响应结果。

3.5.1 响应概览

响应区域包含以下信息:

  • 响应状态码:如 200 OK、404 Not Found、500 Internal Server Error 等
  • 响应时间:请求从发送到接收响应的时间
  • 响应大小:响应内容的大小

3.5.2 响应体

在 "Body" 标签页中,可以查看响应体内容,并可以选择不同的视图:

  • Pretty:格式化显示(支持 JSON、XML、HTML 等)
  • Raw:原始文本显示
  • Preview:预览模式(HTML 响应时可用)

3.5.3 响应头

在 "Headers" 标签页中,可以查看响应头信息。

在 "Cookies" 标签页中,可以查看响应中的 Cookie 信息。

3.5.5 响应测试结果

在 "Test Results" 标签页中,可以查看测试脚本的执行结果。

四、Postman 高级功能

4.1 测试脚本

Postman 支持使用 JavaScript 编写测试脚本,可以在请求发送后验证响应结果。

4.1.1 编写测试脚本

  1. 在请求编辑界面切换到 "Tests" 标签页
  2. 编写 JavaScript 测试脚本
  3. 点击 "Send" 按钮发送请求,测试脚本会自动执行
  4. 在响应区域的 "Test Results" 标签页查看测试结果

4.1.2 测试脚本示例

javascript
// 检查响应状态码是否为 200
pm.test("Status code is 200", function () {
    pm.response.to.have.status(200);
});

// 检查响应体是否包含指定字符串
pm.test("Response body contains 'success'", function () {
    pm.expect(pm.response.text()).to.include("success");
});

// 检查响应体 JSON 格式是否正确
pm.test("Response is JSON format", function () {
    pm.response.to.be.json;
});

// 检查响应体中的特定字段值
pm.test("User name is correct", function () {
    var jsonData = pm.response.json();
    pm.expect(jsonData.name).to.eql("张三");
});

// 检查响应头是否包含指定字段
pm.test("Response headers contain 'Content-Type'", function () {
    pm.response.to.have.header("Content-Type");
});

// 将响应中的值保存到环境变量
pm.test("Set token to environment variable", function () {
    var jsonData = pm.response.json();
    pm.environment.set("token", jsonData.token);
});

4.1.3 常用测试断言

Postman 提供了丰富的断言方法:

  • pm.response.to.have.status(code):检查响应状态码
  • pm.response.to.have.header(name):检查响应头
  • pm.response.to.be.json:检查响应是否为 JSON 格式
  • pm.expect(pm.response.text()).to.include(string):检查响应体是否包含字符串
  • pm.expect(jsonData.field).to.eql(value):检查 JSON 字段值
  • pm.expect(value).to.be.a(type):检查值的类型

4.2 前置脚本

前置脚本(Pre-request Script)是在请求发送前执行的 JavaScript 脚本,可以用于设置变量、生成随机数、签名等操作。

4.2.1 编写前置脚本

  1. 在请求编辑界面切换到 "Pre-request Script" 标签页
  2. 编写 JavaScript 脚本
  3. 点击 "Send" 按钮发送请求,前置脚本会在请求发送前执行

4.2.2 前置脚本示例

javascript
// 生成时间戳并保存到环境变量
var timestamp = Date.now();
pm.environment.set("timestamp", timestamp);

// 生成随机数
var randomNumber = Math.floor(Math.random() * 1000);
pm.environment.set("randomNumber", randomNumber);

// 生成签名
var apiKey = pm.environment.get("apiKey");
var secretKey = pm.environment.get("secretKey");
var nonce = Date.now();
var signature = CryptoJS.HmacSHA256(apiKey + nonce, secretKey).toString();

pm.environment.set("nonce", nonce);
pm.environment.set("signature", signature);

// 设置请求头
pm.request.headers.add({key: 'X-API-Key', value: apiKey});
pm.request.headers.add({key: 'X-Nonce', value: nonce});
pm.request.headers.add({key: 'X-Signature', value: signature});

4.3 Mock 服务

Mock 服务是 Postman 提供的一项强大功能,可以在后端 API 尚未开发完成时,模拟 API 响应,支持前端开发和测试。

4.3.1 创建 Mock 服务

  1. 在左侧导航栏点击 "APIs"
  2. 点击 "New API" 按钮,创建一个新的 API
  3. 填写 API 名称和版本
  4. 点击 "Create Mock Server" 按钮
  5. 填写 Mock 服务名称,选择要模拟的集合
  6. 选择是否公开 Mock 服务
  7. 点击 "Create Mock Server" 完成创建

4.3.2 配置 Mock 响应

  1. 编辑集合中的请求
  2. 在 "Examples" 标签页中,点击 "Add Example"
  3. 设置响应状态码、响应头和响应体
  4. 点击 "Save Example" 保存示例

4.3.3 使用 Mock 服务

创建 Mock 服务后,Postman 会提供一个 Mock URL,可以使用这个 URL 发送请求,获取模拟的响应。

示例:

https://{{mock_id}}.mock.pstmn.io/api/users

4.4 监控(Monitor)

Postman 监控功能可以定期发送请求,检查 API 的性能和可用性,并提供详细的监控报告。

4.4.1 创建监控

  1. 在左侧导航栏点击 "Monitors"
  2. 点击 "New Monitor" 按钮
  3. 选择要监控的集合
  4. 填写监控名称、描述和监控频率
  5. 选择监控的环境和地理位置
  6. 点击 "Create Monitor" 完成创建

4.4.2 查看监控报告

  1. 在左侧导航栏点击 "Monitors"
  2. 点击要查看的监控名称
  3. 可以查看监控概览、详细报告、性能趋势和错误分析

4.5 自动化测试

Postman 支持运行集合中的所有请求,实现自动化测试。

4.5.1 运行集合

  1. 右键点击要运行的集合
  2. 选择 "Run Collection"
  3. 在运行配置界面,选择环境、迭代次数、延迟时间等
  4. 点击 "Run Collection" 开始运行

4.5.2 数据驱动测试

Postman 支持使用数据文件(如 CSV、JSON)进行数据驱动测试:

  1. 准备数据文件(CSV 或 JSON 格式)
  2. 在运行配置界面,点击 "Select File" 按钮,选择数据文件
  3. 在测试脚本中使用 data.字段名 引用数据文件中的值
  4. 点击 "Run Collection" 开始运行

CSV 数据文件示例:

csv
username,password,expected_status
admin,admin123,200
user1,user123,200
invalid,invalid,401

JSON 数据文件示例:

json
[
    {
        "username": "admin",
        "password": "admin123",
        "expected_status": 200
    },
    {
        "username": "user1",
        "password": "user123",
        "expected_status": 200
    },
    {
        "username": "invalid",
        "password": "invalid",
        "expected_status": 401
    }
]

数据驱动测试脚本示例:

javascript
// 使用数据文件中的数据
var username = data.username;
var password = data.password;
var expectedStatus = data.expected_status;

// 设置请求体
pm.request.body.raw = JSON.stringify({
    "username": username,
    "password": password
});

// 发送请求后验证响应
pm.test("Status code is " + expectedStatus, function () {
    pm.response.to.have.status(expectedStatus);
});

五、Postman 最佳实践

5.1 API 设计与开发

  • 使用集合组织 API:按照功能模块或业务逻辑组织 API 请求
  • 使用环境管理配置:为不同环境(开发、测试、生产)创建独立的环境变量
  • 使用变量避免硬编码:将常用值、敏感信息和环境相关配置存储为变量
  • 使用版本控制:定期导出和备份集合,使用 Git 等版本控制工具管理
  • 使用工作流自动化:使用前置脚本和测试脚本实现请求之间的数据传递和依赖处理

5.2 测试与调试

  • 编写全面的测试脚本:验证响应状态码、响应头、响应体内容和数据类型
  • 使用动态数据:使用前置脚本生成随机数、时间戳等动态数据
  • 模拟错误场景:创建模拟错误响应的示例,测试错误处理逻辑
  • 使用数据驱动测试:使用 CSV 或 JSON 数据文件测试多种场景
  • 使用控制台调试:在脚本中使用 console.log() 输出调试信息

5.3 团队协作

  • 使用团队工作空间:创建团队工作空间,方便团队成员共享和协作
  • 设置角色和权限:根据团队成员的角色设置不同的权限(管理员、编辑者、查看者)
  • 使用 API 文档:自动生成 API 文档,方便团队成员查阅和使用
  • 使用 Mock 服务:前端和后端并行开发,提高开发效率
  • 使用监控功能:监控 API 性能和可用性,及时发现和解决问题

5.4 性能与安全

  • 优化请求数量:合并多个请求,减少 API 调用次数
  • 使用缓存:对频繁请求的响应进行缓存,提高性能
  • 保护敏感信息:使用环境变量存储敏感信息,避免硬编码
  • 使用认证和授权:实施适当的认证和授权机制,保护 API 安全
  • 定期更新 Postman:及时更新 Postman 到最新版本,获取性能优化和安全修复

六、Postman 集成

6.1 与 CI/CD 工具集成

Postman 可以与常见的 CI/CD 工具集成,实现自动化测试和持续集成。

6.1.1 与 Jenkins 集成

  1. 在 Postman 中导出集合和环境
  2. 安装 Newman(Postman 的命令行工具):npm install -g newman
  3. 在 Jenkins 中创建一个新的构建任务
  4. 添加构建步骤,执行 Newman 命令:
bash
newman run collection.json -e environment.json -r cli,html --reporter-html-export report.html

6.1.2 与 GitHub Actions 集成

在项目的 .github/workflows 目录下创建一个 YAML 文件:

yaml
name: API Tests

on:
  push:
    branches: [ main ]
  pull_request:
    branches: [ main ]

jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - name: Install Node.js
        uses: actions/setup-node@v2
        with:
          node-version: '14'
      - name: Install Newman
        run: npm install -g newman newman-reporter-html
      - name: Run API Tests
        run: newman run collection.json -e environment.json -r cli,html --reporter-html-export report.html
      - name: Upload Report
        uses: actions/upload-artifact@v2
        with:
          name: api-test-report
          path: report.html

6.2 与 API 文档工具集成

6.2.1 与 Swagger/OpenAPI 集成

  1. 在 Postman 中点击 "Import" 按钮
  2. 选择 "Link" 选项,输入 Swagger/OpenAPI 文档的 URL
  3. 点击 "Import" 按钮,Postman 会自动解析并创建相应的集合

6.2.2 生成 API 文档

  1. 在 Postman 中编辑集合,添加详细的描述和示例
  2. 点击集合名称右侧的 "..." 按钮,选择 "View Documentation"
  3. Postman 会生成交互式 API 文档,可以分享给团队成员

6.3 与版本控制工具集成

Postman 提供了与 Git 等版本控制工具的集成,可以将集合导出为 JSON 文件,并提交到版本控制系统中。

推荐工作流程:

  1. 在 Postman 中创建和编辑集合
  2. 定期导出集合为 JSON 文件
  3. 将 JSON 文件提交到 Git 仓库
  4. 团队成员可以导入最新的集合 JSON 文件

七、Postman 常见问题与解决方案

7.1 请求发送失败

问题: 请求无法发送,显示连接超时或网络错误。

解决方案:

  • 检查网络连接是否正常
  • 检查 API URL 是否正确
  • 检查防火墙设置是否阻止了 Postman 的网络连接
  • 尝试使用代理服务器

7.2 环境变量不生效

问题: 引用的环境变量没有被正确解析。

解决方案:

  • 确保选择了正确的环境
  • 确保变量名拼写正确
  • 检查变量值是否正确设置
  • 尝试使用 console.log(pm.environment.get("variable_name")) 调试变量值

7.3 测试脚本执行失败

问题: 测试脚本执行失败,显示错误信息。

解决方案:

  • 检查 JavaScript 语法是否正确
  • 检查 JSON 路径是否正确
  • 检查断言条件是否合理
  • 使用 console.log() 输出中间变量值,进行调试

7.4 Mock 服务不返回预期响应

问题: 调用 Mock 服务时,返回的响应不是预期的示例。

解决方案:

  • 确保请求 URL、方法和参数与示例匹配
  • 检查 Mock 服务是否正确关联了集合
  • 检查示例是否正确保存
  • 尝试重新创建 Mock 服务

7.5 团队协作问题

问题: 团队成员之间无法共享集合或环境。

解决方案:

  • 确保所有团队成员使用相同版本的 Postman
  • 创建团队工作空间,邀请团队成员加入
  • 设置适当的权限,确保团队成员可以查看和编辑集合
  • 使用版本控制工具管理集合的变更

八、总结

Postman 是一款功能强大的 API 开发和测试工具,它提供了友好的用户界面和丰富的功能,可以帮助开发者设计、测试、调试和文档化 API。通过本文的介绍,相信您已经了解了 Postman 的基本使用方法和高级功能,可以在实际工作中灵活运用 Postman 提高 API 开发效率和质量。

Postman 不断更新和迭代,新增了许多实用的功能,如 API 设计、监控、Mock 服务等。建议您定期关注 Postman 的官方文档和更新日志,了解最新的功能和最佳实践。

最后,希望本文能够帮助您更好地使用 Postman,提升 API 开发和测试的效率和质量!

基于 MIT 许可发布