Postman新手教程:从安装到API测试

Postman 新手教程:从安装到 API 测试

引言

在当今的软件开发领域,API(应用程序接口)扮演着至关重要的角色。它们是不同软件系统之间进行通信和数据交换的桥梁。无论是构建 Web 应用、移动应用还是桌面应用,都离不开与 API 的交互。因此,对于开发者来说,掌握一款强大的 API 测试工具至关重要。

Postman 正是这样一款工具,它以其直观的用户界面、丰富的功能和强大的社区支持,成为了 API 开发和测试领域的行业标准。本教程将带领你从零开始,逐步掌握 Postman 的核心功能,让你能够轻松地进行 API 测试和开发。

第一部分:Postman 安装与界面介绍

1. 下载与安装

Postman 支持多种操作系统,包括 Windows、macOS 和 Linux。你可以从 Postman 官网(https://www.postman.com/downloads/)下载对应平台的安装包。

  • Windows: 下载 .exe 安装程序,双击运行并按照提示完成安装。
  • macOS: 下载 .dmg 安装包,双击打开并将 Postman 应用图标拖动到“应用程序”文件夹中。
  • Linux: 下载 .tar.gz 压缩包,解压后运行其中的 Postman 可执行文件。

安装完成后,你可以选择创建一个 Postman 账号(推荐)或以访客身份使用。创建账号可以同步你的工作区、集合、环境等数据,方便在不同设备上使用。

2. 界面概览

Postman 的界面简洁明了,主要分为以下几个区域:

  • 标题栏 (Header): 包含新建按钮(+)、导入、Runner、打开新窗口、工作区切换、同步状态、设置等功能。
  • 侧边栏 (Sidebar):

    • 历史 (History): 记录你发送过的所有请求。
    • 集合 (Collections): 用于组织和管理你的 API 请求,可以将相关的请求分组到同一个集合中。
    • API: 用于设计和构建 API(更高级的功能)。
    • 环境 (Environments): 用于管理不同环境下的变量,例如开发环境、测试环境和生产环境。
    • 模拟服务器 (Mock Servers): 模拟 API 行为,方便在 API 未开发完成时进行测试。
    • 监视器 (Monitors): 定时运行集合,监控 API 的健康状态和性能。
    • 流 (Flows): 可视化地编排 API 请求(更高级的功能)。
  • 构建器 (Builder): 主要工作区域, 用于构建和发送 API 请求.

    • 请求标签页: 每一个打开的请求都是一个标签页.
    • 请求方法 (Request Method): 选择请求类型,如 GET、POST、PUT、DELETE 等。
    • 请求 URL (Request URL): 输入 API 的地址。
    • 参数 (Params): 添加查询参数(Query Params)。
    • 授权 (Authorization): 设置 API 认证信息,如 API Key、Basic Auth、OAuth 2.0 等。
    • 头部 (Headers): 添加自定义的请求头。
    • 请求体 (Body): 发送请求的数据,如 JSON、form-data、raw 等。
    • 预请求脚本 (Pre-request Script): 在请求发送前执行的 JavaScript 代码,可用于动态生成参数、设置变量等。
    • 测试 (Tests): 在请求发送后执行的 JavaScript 代码,用于验证响应结果是否符合预期。
  • 响应区域 (Response):
    • 状态码 (Status Code): 显示 API 响应的状态码,如 200 OK、404 Not Found 等。
    • 响应时间 (Time): 显示 API 响应的时间。
    • 响应大小 (Size): 显示 API 响应的大小。
    • 响应体 (Body): 显示 API 响应的数据,可以以 Pretty、Raw、Preview 等格式查看。
    • Cookie (Cookies): 显示 API 返回的 Cookie。
    • 头部 (Headers): 显示 API 响应的头部信息。
    • 测试结果 (Test Results): 显示测试脚本的执行结果。

第二部分:发送你的第一个 API 请求

让我们从一个简单的 GET 请求开始,体验 Postman 的基本用法。我们将使用一个公开的 API:https://jsonplaceholder.typicode.com/todos/1,它会返回一个 JSON 格式的待办事项数据。

  1. 在构建器中,确保请求方法选择的是 GET
  2. 在请求 URL 栏中输入 https://jsonplaceholder.typicode.com/todos/1
  3. 点击 Send 按钮。

几秒钟后,你将在响应区域看到 API 返回的数据:

json
{
"userId": 1,
"id": 1,
"title": "delectus aut autem",
"completed": false
}

恭喜你,你已经成功发送了第一个 API 请求!

第三部分:理解请求的各个组成部分

现在,让我们深入了解 API 请求的各个组成部分,以及如何在 Postman 中进行配置。

1. 请求方法 (Request Method)

请求方法定义了对 API 资源执行的操作类型。常见的请求方法包括:

  • GET: 获取资源。
  • POST: 创建新资源。
  • PUT: 更新现有资源(完全替换)。
  • PATCH: 更新现有资源(部分更新)。
  • DELETE: 删除资源。
  • HEAD: 类似于GET, 但只返回头部, 没有body.
  • 还有 OPTIONS, TRACE, CONNECT 等不常用的方法.

在 Postman 中,你可以通过下拉菜单选择请求方法。

2. 请求 URL (Request URL)

请求 URL 是 API 的地址,它指定了要访问的资源。URL 通常由以下几部分组成:

  • 协议 (Protocol): httphttps
  • 域名 (Domain): 例如 jsonplaceholder.typicode.com
  • 路径 (Path): 例如 /todos/1
  • 查询参数 (Query Parameters):? 开头,多个参数之间用 & 分隔,例如 ?userId=1&completed=false

在 Postman 中,你可以在 URL 栏中直接输入 URL,也可以在 Params 标签页中添加查询参数。

3. 参数 (Params)

参数用于向 API 传递额外的信息。参数有两种主要类型:

  • 查询参数 (Query Parameters): 附加在 URL 后面,用于过滤、排序或分页数据。
  • 路径参数 (Path Parameters): URL 路径的一部分,用于标识特定的资源,例如 /todos/{id} 中的 {id}

在 Postman 中,路径参数通常直接写在 URL 中,查询参数可以在 Params 标签页中添加。

4. 授权 (Authorization)

许多 API 需要进行身份验证才能访问。常见的认证方式包括:

  • API Key: 将 API Key 作为请求头或查询参数发送。
  • Basic Auth: 将用户名和密码进行 Base64 编码后发送。
  • OAuth 2.0: 一种更安全的授权协议,通过授权服务器获取访问令牌。
  • Bearer Token: 在头部中加入 Authorization: Bearer <token>

在 Postman 中,你可以在 Authorization 标签页中选择认证类型并填写相关信息。

5. 头部 (Headers)

请求头包含关于请求的元数据,例如内容类型、用户代理等。常见的请求头包括:

  • Content-Type: 指定请求体的数据类型,例如 application/jsonapplication/x-www-form-urlencoded
  • Accept: 指定客户端期望接收的数据类型。
  • User-Agent: 标识客户端的类型和版本。
  • Authorization: 用于携带认证信息 (例如 Bearer Token).

在 Postman 中,你可以在 Headers 标签页中添加自定义的请求头。

6. 请求体 (Body)

请求体用于发送数据给 API,通常用于 POST、PUT 和 PATCH 请求。常见的数据格式包括:

  • none: 没有请求体。
  • form-data: 用于模拟表单提交,可以上传文件。
  • x-www-form-urlencoded: 将数据编码为键值对,类似于 URL 查询参数。
  • raw: 发送原始数据,可以是任意文本格式,例如 JSON、XML、HTML 等。
  • binary: 发送二进制数据,例如图片、视频等。
  • GraphQL: 用于 GraphQL API 的查询。

在 Postman 中,你可以在 Body 标签页中选择数据类型并填写数据。

第四部分:使用集合 (Collections) 组织请求

当你的 API 请求越来越多时,使用集合来组织它们变得非常重要。集合可以将相关的请求分组到一起,方便管理和复用。

1. 创建集合

在侧边栏中,点击 Collections 旁边的加号 (+) 按钮,输入集合名称并创建。

2. 添加请求到集合

  • 在构建器中发送请求后,点击 Save 按钮,选择要保存到的集合。
  • 在侧边栏中,右键点击集合,选择 Add Request,然后填写请求信息。

3. 组织集合

你可以在集合中创建文件夹,进一步组织你的请求。例如,你可以按照 API 的功能模块或版本来创建文件夹。

4. 集合的导出与导入

你可以将集合导出为 JSON 文件,方便与他人共享或备份。也可以导入其他人分享的集合。

第五部分:使用环境 (Environments) 管理变量

在不同的环境下,API 的 URL、认证信息等可能会有所不同。使用环境可以方便地管理这些变量,避免在多个请求中重复填写。

1. 创建环境

在侧边栏中,点击 Environments 旁边的眼睛图标,然后点击加号 (+) 按钮,输入环境名称并创建。

2. 添加变量

在环境中,你可以添加多个变量,例如 baseUrlapiKey 等。

3. 使用变量

在请求的 URL、头部、请求体等地方,可以使用双花括号 {{variableName}} 来引用变量。例如,{{baseUrl}}/todos/1

4. 切换环境

在 Postman 界面的右上角,可以选择当前使用的环境。

第六部分:编写测试 (Tests) 脚本

Postman 的测试功能允许你编写 JavaScript 代码来验证 API 响应是否符合预期。

1. 测试脚本的结构

测试脚本通常包含在 Tests 标签页中。Postman 提供了一个名为 pm 的全局对象,它包含许多用于编写测试的函数和属性。

```javascript
pm.test("Status code is 200", function () {
pm.response.to.have.status(200);
});

pm.test("Response body contains userId", function () {
var jsonData = pm.response.json();
pm.expect(jsonData.userId).to.eql(1);
});
```

  • pm.test(testName, function): 定义一个测试,testName 是测试的名称,function 是测试的执行体。
  • pm.response: 表示 API 的响应。
  • pm.response.to.have.status(statusCode): 断言响应状态码是否等于 statusCode
  • pm.response.json(): 将响应体解析为 JSON 对象。
  • pm.expect(value).to.eql(expectedValue): 断言 value 是否等于 expectedValue

2. 常用断言

Postman 提供了许多内置的断言函数,例如:

  • pm.response.to.have.status(code): 检查状态码。
  • pm.response.to.have.header(headerName): 检查响应头是否存在。
  • pm.response.to.have.header(headerName, headerValue): 检查响应头的值。
  • pm.response.to.have.body(string): 检查响应体是否包含指定的字符串。
  • pm.response.to.have.jsonBody(path, value):检查JSON响应中指定路径的值.
  • pm.response.to.have.responseTime(milliseconds): 检查响应时间是否小于指定毫秒数。
  • pm.expect(value).to.eql(expectedValue): 通用断言,检查两个值是否相等。
  • pm.expect(value).to.be.a(type): 检查值的类型,例如 pm.expect(value).to.be.a('string')
  • pm.expect(value).to.have.lengthOf(length): 检查数组或字符串的长度。
  • 还有很多其他的断言方法,可以在Postman文档中查看.

3. 使用变量

测试脚本中也可以使用环境变量和全局变量。例如:

javascript
pm.test("User ID matches environment variable", function () {
var jsonData = pm.response.json();
pm.expect(jsonData.userId).to.eql(pm.environment.get("userId"));
});

还可以通过pm.environment.set("variable_key", "value")pm.globals.set("variable_key", "value")来设置环境变量和全局变量.

第七部分:使用 Runner 批量运行集合

Postman 的 Runner 功能允许你批量运行集合中的请求,并查看测试结果。

1. 打开 Runner

点击 Postman 界面顶部的 Runner 按钮。

2. 选择集合和环境

在 Runner 窗口中,选择要运行的集合和环境。

3. 配置运行参数

你可以配置迭代次数、延迟时间等参数。

4. 运行集合

点击 Start Run 按钮,Runner 将按照顺序运行集合中的请求,并显示每个请求的测试结果。

第八部分:Postman 的其他高级功能

除了上面介绍的核心功能外,Postman 还有许多高级功能,可以帮助你更高效地进行 API 开发和测试。

  • Mock Servers (模拟服务器): 模拟 API 行为,方便在 API 未开发完成时进行测试。
  • Monitors (监视器): 定时运行集合,监控 API 的健康状态和性能。
  • API Documentation (API 文档): 根据集合自动生成 API 文档。
  • Workspaces (工作区): 与团队成员协作,共享集合、环境等资源。
  • Postman API: 通过 Postman API 访问你的数据,实现自动化。
  • Flows: 可视化的API工作流构建工具.

总结

本教程详细介绍了 Postman 的安装、界面、基本用法和高级功能。通过学习本教程,你应该已经掌握了使用 Postman 进行 API 测试和开发的基本技能。Postman 是一个功能强大且易于使用的工具,希望你能充分利用它,提高你的 API 开发和测试效率。 记得多加练习,熟能生巧。并持续关注Postman的官方文档,了解最新的功能和最佳实践。

THE END