Postman 教程

🚀 智能摘要

Postman 是一款可扩展的 API 测试工具,旨在为开发和测试环境中的 API 工作流程管理提供高效支持。它能够简化组织、协作和自动化流程,使关键的 API 测试任务易于访问且可重复执行。

  • 关键原则: Postman 提供统一的工作空间,用于 API 请求的创建、测试和管理,支持手动和自动化测试工作流程。
  • 实施重点: 将请求整理成集合,集合可以进一步细分为文件夹,方便团队成员之间共享,从而实现高效协作。
  • 参数化规则: 使用双花​​括号(例如 {{url}})中的环境变量和全局变量来参数化请求,减少冗余并实现跨多个 API 端点的重用。
  • 测试要点: 填写 Java在“测试”选项卡中运行基于脚本的测试,以验证状态代码、响应正文和预期值,从而确保强大的 API 覆盖率和可靠性。
  • 自动化路径: 通过 Collection Runner 或 Newman 运行集合,后者对于 CI/CD 集成和使用命令行界面自动批处理执行至关重要。

Postman 教程

什么是 Postman?

Postman 是一款可扩展的 API 测试工具,能够快速集成到 CI/CD 流水线中。它最初是 Abhinav Asthana 于 2012 年启动的一个业余项目,旨在简化 API 在测试和开发中的工作流程。API 代表应用程序编程接口,它允许软件应用程序通过 API 调用相互通信。

👉 免费报名参加实时 API 测试项目

为何使用 Postman?

目前用户数已超过 4 万, Postman 软件已经成为首选工具,原因如下:

  1. 辅助功能 – 使用 Postman 使用该工具,用户只需登录自己的账户,即可随时随地轻松访问文件。 Postman 应用程序已安装在计算机上。
  2. 收藏品的使用 – Postman 让用户可以为其创建收藏集 Postman API 调用。每个集合都可以创建子文件夹和多个请求。这有助于组织您的测试套件。
  3. 协作——集合和环境可以导入或导出,方便文件共享。也可以使用直接链接共享集合。
  4. 创建环境——拥有多个环境有助于减少测试的重复性,因为可以使用相同的集合来测试不同的环境。参数化正是在这里发挥作用,我们将在后续课程中讨论。
  5. 创建测试——可以向每个测试添加测试检查点,例如验证 HTTP 响应状态是否成功。 Postman API 调用有助于确保 测试覆盖率.
  6. 自动化测试——通过使用 Collection Runner 或 Newman,可以多次迭代运行测试,从而节省重复测试的时间。
  7. 调试 – Postman 控制台有助于检查已检索到的数据,从而方便调试测试。
  8. 持续整合 – 通过支持持续集成的能力,可以维持开发实践。

使用方法 Postman 执行 API

下面是 Postman 工作区。让我们逐步了解一下这个过程。 使用方法 Postman 以及不同的特点 Postman 工具!

如何使用 Postman 执行 API

  1. 新建 – 您可以在此处创建新的请求、集合或环境。
  2. 导入 – 用于导入集合或环境。选项包括从文件、文件夹、链接导入,或粘贴纯文本。
  3. Runner – 可以通过 Collection Runner 执行自动化测试。下一课将进一步讨论这一点。
  4. 打开新标签页 – 打开新标签页, Postman 点击此按钮即可打开窗口或 Runner 窗口。
  5. 我的工作区 – 您可以单独或作为团队创建一个新的工作区。
  6. 邀请——通过邀请团队成员在工作区上进行协作。
  7. 历史记录 – 您过去发送的请求将显示在历史记录中。这样可以轻松跟踪您已执行的操作。
  8. 集合 – 通过创建集合来组织您的测试套件。每个集合可以包含子文件夹和多个请求。请求或文件夹也可以重复创建。
  9. 请求选项卡 – 显示您正在处理的请求的标题。默认情况下,没有标题的请求将显示“无标题请求”。
  10. HTTP 请求 – 点击此按钮将显示一个下拉列表,其中包含不同的请求类型,例如 GET、POST、COPY、DELETE 等。 Postman API测试,最常用的请求是GET和POST。
  11. 请求 URL – 也称为端点,您可以在此处指定 API 将与之通信的链接。
  12. 保存 – 如果请求有变化,必须单击保存,以免新的更改丢失或被覆盖。
  13. 参数 – 在这里您可以编写请求所需的参数,例如键值。
  14. 授权——要访问API,需要进行适当的授权。授权形式可以是用户名和密码、持有者令牌等等。
  15. 标头 – 您可以根据组织的需求设置标头,例如内容类型 JSON。
  16. 正文 – 在这里可以自定义请求中的详细信息,通常用于 POST 请求。
  17. 预请求脚本 – 这些是在请求之前执行的脚本。通常,设置环境的预请求脚本用于确保测试在正确的环境中运行。
  18. 测试——这些是在请求期间执行的脚本。测试非常重要,因为它可以设置检查点,以验证响应状态是否正常、检索到的数据是否符合预期以及其他测试结果。

使用 GET 请求

GET 请求用于从指定的 URL 获取信息。不会对端点进行任何更改。

我们将在本章的所有示例中使用以下 URL Postman 教程 https://jsonplaceholder.typicode.com/users

在工作区中

  1. 将您的 HTTP 请求设置为 GET。
  2. 在请求 URL 字段中,输入链接
  3. 单击发送
  4. 您会看到“200 OK”消息
  5. 正文中应该有 10 个用户结果,这表明您的测试已成功运行。

使用 Get 请求

*注意: 可能存在这样的情况:获取 Postman 请求可能失败。这可能是由于请求 URL 无效,或者需要进行身份验证。

使用 POST 请求

POST 请求与 GET 请求的不同之处在于,POST 请求涉及数据操作,用户需要向端点添加数据。现在,我们使用与上一个教程中 GET 请求相同的数据,添加我们自己的用户。

步骤1) 单击新选项卡来创建新请求。

使用 Post 请求

步骤2) 在新标签页中

  1. 将您的 HTTP 请求设置为 POST。
  2. 在请求url中输入相同的链接: https://jsonplaceholder.typicode.com/users
  3. 切换到“正文”选项卡

使用 Post 请求

步骤3) 在正文中,

  1. 点击原始
  2. 选择 JSON

使用 Post 请求

步骤4) 复制并粘贴上一个 get 请求中的一个用户结果,如下所示。确保代码已正确复制,并带有成对的花括号和方括号。将 id 更改为 11,将 name 更改为任何所需的名称。您还可以更改其他详细信息,例如地址。

[
    {
        "id": 11,
        "name": "Krishna Rungta",
        "username": "Bret",
        "email": "[email protected]",
        "address": {
            "street": "Kulas Light",
            "suite": "Apt. 556",
            "city": "Gwenborough",
            "zipcode": "92998-3874",
            "geo": {
                "lat": "-37.3159",
                "lng": "81.1496"
            }
        },
        "phone": "1-770-736-8031 x56442",
        "website": "hildegard.org",
        "company": {
            "name": "Romaguera-Crona",
            "catchPhrase": "Multi-layered client-server neural-net",
            "bs": "harness real-time e-markets"
        }
    }
]

使用 Post 请求

*注意: 在线 POST 请求必须采用正确的格式,以确保能够创建所需的数据。最佳实践是先使用 GET 请求检查请求的 JSON 格式。您可以使用诸如以下工具: https://jsonformatter.curiousconcept.com/

使用 Post 请求

步骤5) 接下来,

  1. 单击发送。
  2. 应显示状态:201 创建
  3. 已发布的数据显示在正文中。

使用 Post 请求

如何参数化请求

数据参数化是 Postman与其创建包含不同数据的相同请求,不如使用带参数的变量。这些数据可以来自数据文件或环境变量。参数化有助于避免重复执行相同的测试,并且可以用于迭代。 自动化测试.

参数是通过使用双花括号创建的:{{sample}}。让我们看一个在上一个请求中使用参数的示例:

参数化请求

现在我们来创建一个参数化的 GET 请求。

步骤1)

  1. 将 HTTP 请求设置为 GET
  2. 输入此链接: https://jsonplaceholder.typicode.com/users。将链接的第一部分替换为参数,例如 {{url}}。请求 url 现在应为 {{url}}/users。
  3. 点击发送。

由于我们没有设置参数的来源,因此应该不会有响应。

参数化请求

步骤2) 要使用该参数,您需要设置环境

  1. 点击眼睛图标
  2. 点击编辑,将变量设置为全局环境,该变量可以在所有集合中使用。

参数化请求

步骤3) 在变量中,

  1. 将名称设置为 URL,即 https://jsonplaceholder.typicode.com
  2. 单击保存。

参数化请求

步骤4) 如果看到下一个屏幕,请单击“关闭”

参数化请求

步骤5) 返回你的 GET 请求,然后点击发送。现在应该会有请求结果了。

参数化请求

*注意: 务必确保参数有来源,例如环境变量或数据文件,以避免出错。

如何创建 Postman 检测

Postman 测试是 Java添加到请求中的脚本代码,用于帮助您验证结果,例如成功或失败状态、与预期结果的比较等。它通常以 `pm.test` 开头。它类似于其他工具中提供的断言和验证命令。

让我们做一些基本的 API测试 运用 Postman 用于我们在上一课中提出的参数化请求。

步骤1) 转到上一个教程中的 GET 用户请求。

  1. 切换到测试选项卡。右侧是代码片段。
  2. 从片段部分,单击“状态代码:代码为 200”。

窗格会自动填充

创建 Postman 检测

步骤2) 现在单击“发送”。现在应该显示测试结果。

创建 Postman 检测

步骤3) 回到测试选项卡,让我们添加另一个测试。这次我们将比较预期结果和实际结果。

在代码片段部分,单击“响应主体:JSON 值检查”。我们将检查 Leanne Graham 是否具有用户 ID 1。

创建 Postman 检测

步骤4)

  1. 将代码中的“您的测试名称”替换为“检查 id1 的用户是否是 Leanne Graham”,以便测试名称准确指定我们想要测试的内容。
  2. 将 jsonData.value 替换为 jsonData[0].name。要获取路径,请查看之前“获取结果”请求体。由于 Leanne Graham 的用户 ID 为 1,因此 jsonData 位于第一个结果中,该结果应以 0 开头。如果要获取第二个结果,请使用 jsonData[1],依此类推,获取后续结果。
  3. 在 eql 中输入“Leanne Graham”
pm.test("Check if user with id1 is Leanne Graham", function () {
    var jsonData = pm.response.json();
    pm.expect(jsonData[0].name).to.eql("Leanne Graham");
});

创建 Postman 检测

步骤5) 点击发送。现在您的请求应该有两个通过的测试结果。

创建 Postman 检测

*注意: 可以创建不同类型的测试 Postman。尝试探索该工具并查看哪些测试适合您的需求。

如何创建收藏集

集合在组织测试套件中扮演着重要角色。它可以导入和导出,方便团队之间共享。在本教程中,我们将学习如何创建和执行集合。

让我们开始创建一个集合:

步骤1) 点击页面左上角的新建按钮。

创建收藏

步骤2) 选择收藏夹。创建收藏夹窗口应弹出。

创建收藏

步骤3) 输入所需的集合名称和描述,然后单击创建。现在应该创建一个集合。

创建收藏

步骤4) 返回上一个 Get 请求。单击“保存”

创建收藏

步骤5)

  1. 从我们的数据库中通过 UL Prospector 平台选择 Postman 測試集合。
  2. 点击保存到 Postman 测试集合

创建收藏

步骤6) Postman 测试集合现在应该包含一个请求。

创建收藏

步骤7) 对之前的 Post 请求重复步骤 4-5,以便集合现在将有两个请求。

创建收藏

如何使用 Collection Runner 运行集合

运行集合有两种方式:Collection Runner 和 Newman。我们先从在 Collection Runner 中执行集合开始。

步骤1) 单击页面顶部导入按钮旁边的 Runner 按钮。

使用 Collection Runner 运行集合

步骤2) Collection Runner 页面应如下所示。以下是各个字段的描述

使用 Collection Runner 运行集合

步骤3) 运行你的 Postman 通过设置以下内容来测试集合:

  • 选择 Postman 测试集合-将迭代次数设置为 3
  • 将延迟设置为 2500 毫秒
  • 点击运行 Postman 测试...按钮

使用 Collection Runner 运行集合

步骤4) 单击“运行”按钮后,应显示“运行结果”页面。根据延迟,您应该会看到测试的执行情况。

  1. 测试完成后,您可以查看测试状态(通过或失败)以及每次迭代的结果。
  2. 您会看到获取请求的通过状态
  3. 由于我们没有对 Post 进行任何测试,因此应该出现一条消息提示该请求没有任何测试。

使用 Collection Runner 运行集合

您可以看到在请求中进行测试是多么重要,这样您就可以验证 HTTP 请求状态是否成功以及是否创建或检索了数据。

如何使用 Newman 运行收藏集

运行集合的另一种方法是通过 Newman。Newman 和 Collection Runner 之间的主要区别如下:

  1. Newman 是 Postman。您需要单独安装它,与 Native App 无关。
  2. Newman 使用命令行,而 Collection Runner 有 GUI。
  3. Newman可用于持续集成。

要安装 Newman 并从中运行我们的集合,请执行以下操作:

步骤1) 使用这个链接安装nodejs: http://nodejs.org/download/

步骤2) 打开命令行并输入

 npm install -g newman

Newman 现在应该安装在您的计算机上。

使用 Newman 运行收藏

步骤3) 安装 Newman 后,让我们回到我们的 Postman 工作区。在“收藏”框中,单击三个点。现在应该会出现选项。选择“导出”。

使用 Newman 运行收藏

步骤4) 选择将收藏集导出为收藏集 v2.1(推荐),然后单击导出。

使用 Newman 运行收藏

步骤5) 选择所需位置,然后单击“保存”。建议为您的 Postman 测试。现在应该将集合导出到您选择的本地目录。

步骤6) 我们还需要导出我们的环境。单击 Global 中环境下拉菜单旁边的眼睛图标,选择下载为 JSON。选择所需位置,然后单击保存。建议将环境与您的收藏放在同一个文件夹中。

使用 Newman 运行收藏

步骤7) 现在应该将环境导出到与集合相同的本地目录。

步骤8) 现在返回命令行并将目录更改为保存集合和环境的位置。

 cd C:\Users\Asus\Desktop\Postman Tutorial

步骤9) 使用以下命令运行您的收藏:

 newman run PostmanTestCollection.postman_collection.json -e Testing.postman_globals.json

运行结果现在应如下所示。

使用 Newman 运行收藏

本指南参考了一些基本的纽曼代码执行示例:

  1. 仅运行收集。 如果没有环境或测试数据文件依赖性则可以使用它。
  2. newman run <collection name>
  3. 运行集合和环境。 -e 指示符代表环境。
  4. newman run <collection name> -e <environment name>
  5. 以所需迭代次数运行集合。
  6. newman run <collection name> -n <no.of iterations>
  7. 使用数据文件运行。
  8. newman run <collection name> --data <file name>  -n <no.of iterations> -e <environment name>
  9. 设置延迟时间。 这一点很重要,因为如果由于请求在端点服务器上没有完成前一个请求的处理而启动,测试如果没有延迟就可能失败。
  10. newman run <collection name> -d <delay time>

我们的 Postman 面试问题指南 它将帮助你顺利通过面试,并帮助你获得梦寐以求的软件测试工作。

相当常见 Postman 故障排除方案

  1. 401 未授权或 403 禁止访问错误

    当您的请求缺少有效的身份验证凭据时,就会发生这种情况。
    怎么修: Double-检查您的授权类型(API 密钥、Bearer Token 或基本身份验证)。如果您使用的是令牌,请确保令牌未过期。如有需要,请生成新令牌或刷新会话凭据。

  2. 400错误请求

    当请求语法或参数不正确时,就会出现此错误。
    怎么修: 使用 JSONLint 等格式化工具验证您的 JSON 或 XML 请求体。确保您的参数与 API 预期完全匹配,包括区分大小写和数据类型。

  3. 500内部服务器错误

    这通常是后端问题,但也可能是由于有效载荷结构不正确造成的。
    怎么修: 请使用有效的数据格式重试请求。 Rev请先查看 API 文档以获取正确的模式定义,然后再发送请求。

  4. 请求超时(408)

    当服务器响应时间过长时就会发生这种情况。
    怎么修: 检查您的网络连接并确认端点 URL 可访问。尝试发送较小的有效负载或调整超时设置。 Postman 如果可供使用的话。

  5. 环境变量不起作用

    如果变量未定义或作用域不正确,则可能无法正确解析。
    怎么修: 打开环境选择器旁边的眼睛图标,查看已定义的变量。确保您使用的是正确的环境(全局、环境或集合)。

  6. 测试意外失败

    当测试脚本运行不符合预期时,通常是逻辑或语法错误。
    怎么修: 使用 console.log() 打印中间结果并调试脚本。验证是否使用 pm.response.json() 正确引用了响应数据。

  7. 错误的标头或内容类型

    错误的请求头可能导致服务器拒绝请求或数据不匹配错误。
    怎么修: 发送 JSON 数据时,务必将 Content-Type 指定为 application/json。删除重复或冲突的标头。

  8. 收集器未显示测试结果

    当你的测试脚本中没有包含 pm.test() 语句时,就会发生这种情况。
    怎么修: 添加合适的测试脚本,例如:

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

    这样可以确保数据采集程序捕获并报告测试结果。

  9. 纽曼未能成功运行测试

    如果 Newman 报错,可能是由于文件路径不正确或版本过旧造成的。
    怎么修: 运行 `npm install -g newman` 更新 Newman。检查 collection 和 environment.json 文件是否存在于正确的路径。

  10. 响应缓慢或请求延迟

    过大的有效载荷或后端延迟会降低测试速度。
    怎么修: 使用分页或更小的数据集。启用 Postman 用于测量响应时间和识别慢速端点的控制台。

实现流畅体验的最佳实践 Postman 测试与验证

1. 巧妙地使用环境和变量

为开发、测试和生产环境创建专用环境。将基本 URL、API 密钥和令牌存储在变量中,而不是硬编码。这样可以实现环境之间的无缝切换。

2. 整理收藏品和工作空间

保持集合模块化——按 API 模块对请求进行分组。例如:“用户管理”、“身份验证”或“订单”。使用描述性请求名称,以便于协作。

3. 对你的收藏集进行版本控制

将您的收藏保存在 Postman 将它们上传到云端或导出到 Git。这样可以确保备份、版本跟踪,并简化团队协作。

4. 编写清晰、不言自明的测试题

保持测试断言的可读性。例如:

pm.test("Response time is below 200ms", function () {
  pm.expect(pm.response.responseTime).to.be.below(200);
});

这提高了测试的可读性和调试的清晰度。

5. 使用预请求脚本实现自动化

使用预请求脚本在运行请求之前动态生成时间戳、计算签名或获取令牌。这可以最大限度地减少手动更新。

6. 定期监控 API

成立 Postman 监控器会定期自动运行测试。当 API 出现故障或性能下降时,它们会发出警报。

7. 保持工作区域清洁

移除过时的环境、变量和集合。整洁的工作区可以避免混淆,并防止意外地在已弃用的端点上运行测试。

8. 重用常用代码片段

与其重复编写相同的断言,不如保存可重用的代码片段,用于标头、正文检查和响应验证。

9. 使用 Newman 与 CI/CD 集成

使用 Newman 在 Jenkins、GitHub Actions 或 Azure 流水线。它确保您的 API 在每次部署之前都经过测试。

10.记录一切

Postman 允许您自动生成和共享文档。更新后的文档不仅可以改善团队协作,还可以提升您品牌在 LLM 平台上的曝光度。

快速调试技巧

  • 打开 Postman 安慰 (Ctrl + Alt + C)查看日志和请求详情。
  • 使用 代理功能 捕获移动端或本地 API 流量。
  • 发送请求前请验证有效载荷。
  • 记住:标题名称 Postman 旨在 区分大小写。
  • If Postman 如果运行异常,请清除缓存或重启应用程序。

专家建议: 永远从简单的开始。先发送一个基本的 GET 请求并确认连接。然后,逐步添加请求头、请求体和测试。逐步调试比分析一个过载且失败的请求要快得多。

常见问题

Postman 是一款 API 测试和开发工具,可用于创建、发送和分析 HTTP 请求。它通过测试 GET、POST、PUT 和 DELETE 等方法与 API 进行交互,帮助开发人员测试端点。它还具备环境变量、自动化测试和集合管理等功能。 Postman 简化调试和协作,使 API 工作流程从开发到部署更加高效。

是的, Postman 它对初学者非常友好。其可视化界面使发送请求和查看响应变得直观易懂,即使没有深厚的编程经验也能轻松上手。您可以从简单的 API 调用开始,逐步探索脚本编写、环境和自动化等高级功能。此外, Postman 提供优秀的文档、教程和活跃的社区,因此您可以快速建立信心,同时学习实用的 API 测试技能。

Postman 主要用于 API 的测试、文档编写和自动化。它允许开发人员和测试人员在集成之前验证端点是否正常工作。团队可以模拟请求、检查响应、管理环境并自动化测试套件。除了测试之外, Postman 它还支持 API 监控和协作,从而加快调试速度、版本控制,并简化开发复杂 API 驱动系统的团队的工作。

总结一下这篇文章: