使用 flask2postman 从 Flask 应用程序创建 Postman 集合

2025 年 4 月 26 日 | 阅读 14 分钟

引言

使用 Flask,您可以轻松快速地构建在线应用程序,因为它是一个轻量级且多功能的 Python 微 Web 框架。它以其简洁性而闻名,由 Armin Ronacher 设计,使开发人员能够以很少的设置创建可扩展的 Web 应用程序。Flask 遵守 WSGI (Web Server Gateway Interface) 协议,因此与一系列 Web 服务器和中间件兼容。其主要功能包括 URL 路由、请求和响应管理以及对 Jinja2 模板的支持。Flask 的模块化特性使其成为小型和大型项目的流行选择,因为它允许开发人员仅添加他们所需的组件。

出于多种原因,API 测试和文档是 API 开发的重要组成部分。

  • 清晰和沟通:清晰的文档可确保开发人员了解可用的端点、如何与它们交互、预期的输入和输出格式,以及是否需要任何标头或参数。
  • 减少错误:由于开发人员可以轻松查阅规范,因此文档齐全的需求有助于最大程度地减少开发和集成过程中的错误。
  • 效率:文档齐全的 API 通过为开发人员提供参考并最大程度地减少反复试验的需要,从而缩短了开发时间。
  • 质量保证:测试 API 可确保它们正常运行、处理边缘情况并始终如一地响应,从而提高应用程序的弹性和可靠性。
  • 维护:由于开发人员可以轻松理解和确认功能,因此广泛的测试和编写良好的文档有助于 API 的维护和更新。

Postman 简介

Postman 是一款完整的 API 开发解决方案,可简化 API 的构建、测试和文档编制。它提供了一个易于使用的界面,用于创建 API 请求、将它们分组到集合中,并将它们发送给其他团队成员。

  • 请求构建器:此工具使开发人员能够生成和发送具有指定标头、正文内容和方法的 HTTP 请求(GET、POST、PUT、DELETE 等)。
  • 集合:通过将相关的 API 查询组合到集合中,可以更好地组织和重用它们。
  • 环境变量:通过利用变量,可以轻松管理各种环境(如开发、暂存和生产),而无需修改请求详细信息。
  • 自动化测试:此功能支持创建和执行测试,以验证 API 响应并确保它们产生所需的结果。
  • 协作:版本控制和共享工作区促进团队协作。

flask2postman 简介

Flask2Postman 的目的是简化从 Flask 应用程序创建 Postman 集合。通过扫描 Flask 项目中定义的路由和端点,并生成可以直接加载到 Postman 中的集合,它可以自动化 Postman 文档的开发。

  • 自动化:通过消除创建和更新 Postman 集合的需要,节省了时间和减少了错误。
  • 一致性:确保文档是最新的,并且 Postman 集合准确地表示 Flask API 的当前状态。
  • 易于使用:易于设置和使用,并且易于与 Flask 应用程序集成。
  • 自定义:通过自定义,可以向创建的集合添加标头、描述和其他元数据。

开发人员可以通过利用 flask2postman 简化他们的流程并确保其 API 文档始终与他们的 Flask 应用程序保持同步,从而提高开发效率和 API 质量。

设置 Flask 应用程序

前提条件

在开始之前,请确保您已安装所需的库和工具。

  • Python: Flask 运行所需的编程语言。确保您已安装 Python 3.6 或更高版本。
  • Flask: Web 应用程序使用 Python 微 Web 框架 Flask 构建。
  • flask2postman:一个将 Flask 应用程序转换为 Postman 集合的应用程序。

安装 Flask

  • 要安装 Python,请访问 [官方 Python 网站](https://pythonlang.cn/downloads/) 并下载最新版本。然后,按照操作系统的安装指南进行操作。
  • 创建在线环境:启动您的终端(Mac OS/Linux:终端,PowerShell 或命令提示符)。打开项目目录。
  • 安装 Flask:在虚拟环境处于活动状态时,运行以下命令来安装 Flask。
  • 检查安装:执行以下命令以确保 Flask 已安装,

创建简单的 Flask 应用程序

  • 建立项目结构:确保您的项目有一个新目录。在项目目录中创建 `app.py` 文件。
  • 编写 Flask 应用程序:激活 `app.py` 并包含以下代码。
  • 代码
  • 代码解释
  • 运行应用程序:保存 `app.py` 后,通过在终端中输入以下命令来运行程序。

集成 flask2postman

安装 flask2postman

使用 pip 安装 flask2postman 是将其集成到 Flask 应用程序的第一步。此包使您能够通过直接从 Flask 路由创建 Postman 集合来加快文档编制过程。

  • 确保已安装 pip 和 Python。打开您的终端或命令行,输入以检查 Python 是否已安装。

要检查 pip 是否已安装,请运行

  • 安装 flask2postman:在命令行或终端中键入以下命令以安装 flask2postman。

将 flask2postman 添加到您的 Flask 应用

下一步是将 flask2postman 集成到您的 Flask 应用程序中。您必须修改当前的 Flask 应用程序才能集成 flask2postman 所需的配置。

1. 导入并初始化 flask2postman

2. 定义您的 Flask 路由

3. 创建一个蓝图(如果尚未在使用),并生成 Postman 集合

4. 运行应用程序

集成过程说明

  • 导入 flask2postman:`Blueprint2Postman` 类来自 Flask2postman。此类别使用您的 Flask 蓝图创建 Postman 集合。
  • 定义路由:出于演示目的,定义了两个示例路由:{/hello} 和 /goodbye}。这些路由提供简单的 JSON 响应。
  • 创建和注册蓝图:如果您的应用程序当前正在使用蓝图,则可以跳过创建和注册蓝图的步骤。如果没有,Flask 应用程序将创建一个名为 {api_bp} 的蓝图并进行注册。使用蓝图,您可以将相关的路由分组在一起,以组织您的 Flask 应用程序。
  • 初始化 flask2postman:蓝图和 Flask 应用程序初始化 `Blueprint2Postman` 类。此配置将根据蓝图中定义的路由创建一个 Postman 集合。
  • 启动应用程序:此时,Flask 应用程序将以调试模式启动。一旦应用程序启动,Flask2Postman 将自动创建 Postman 集合并使其可供下载。

生成 Postman 集合

运行 flask2postman

您需要运行 flask2postman 来为您的 Flask 应用程序生成 Postman 集合。

  • 验证 flask2postman 是否已安装:验证 flask2postman 是否已安装在您的 Python 环境中。您可以使用 pip 进行安装,
  • 准备您的 Flask 应用程序:确保您的 Flask 应用程序已打开并正在运行。
  • 使用 flask2postman:要访问您的 Flask 应用程序,请打开终端或命令提示符并导航到包含它的目录。

此命令将扫描您的 Flask 应用程序并创建一个 Postman 集合,并将其保存在名为 `postman_collection.json` 的文件中。

  • 示例命令和预期结果:这是命令运行时可能看起来的示例。

自定义 Postman 集合

  • 生成后,您可能需要修改 Postman 集合以更好地满足您的需求。您可以使用 flask2postman 提供的多项配置设置来自定义集合。
  • 配置参数:您可以使用 JSON 配置文件或命令行传递参数来显式自定义 flask2postman。
  • 集合名称:使用 `-n` 或 `--name` 选项为 Postman 集合指定唯一名称。
  • 环境变量:如果您的 Flask 端点需要它们,您可以在配置文件中指定环境变量(例如 API 密钥)。
  • 修改生成的集合:生成后,您可以手动修改 `postman_collection.json` 文件以进行进一步的更改。例如,您可以为每个请求创建唯一的标头、提供描述并将端点组织到文件夹中。
  • Postman 集成:根据 Postman 的最佳实践审查和调整创建的集合,以确保与 Postman 无缝集成。为了提高可维护性,这包括使用 Postman 变量和设置测试和预请求脚本。

通过使用 flask2postman 和 Flask 应用程序高效地创建和自定义 Postman 集合,这些说明将帮助您简化 API 的测试和文档编制流程,从而提高代码稳定性和开发速度。

将集合导入 Postman

导出集合

  • 使用 flask2postman 生成 Postman 集合:在使用 flask2postman 工具之前,请确保您的 Flask 应用程序正在运行。通常,您可以通过在终端中输入命令来完成此操作。
  • generate:此命令指示 flask2postman 创建一个 Postman 集合。
  • 选项 `-o postman_collection.json` 指定集合的输出文件。该文件应具有 `.json` 扩展名,但您可以根据需要命名。
  • 检查输出文件:在执行脚本后,在项目目录中查找 `postman_collection.json` 文件。此文件以 Postman 可以理解的格式包含有关您的 API 端点的所有必要详细信息。

导入到 Postman

  • 打开 Postman:启动您的 PC 并打开 Postman。如果您尚未安装 Postman,请访问 [Postman 网站] (https://www.postman.com/downloads/) 进行下载。
  • 导入集合:在 Postman 界面的左上方,单击“导入”按钮。将出现一个带有多个选项的模态窗口。选择“文件上传”选项卡。导航到 `postman_collection.json` 文件所在的位置,然后单击“选择文件”按钮。选择文件后,单击“打开”。
  • 导入确认:选择文件后,单击模态窗口中的“**导入**”按钮。Postman 将导入集合并解析文件。

验证 Postman 中的端点及其正确表示

导入集合后,确认每个端点都得到准确表示并且按预期工作至关重要。

  • 检查端点:检查集合中的所有端点,以确保 URL 路径、请求类型(POST、GET 等)、标头和正文参数(如有)是否正确。
  • 发送测试请求:在 Postman 中,选择一个端点并按“发送”按钮。这将向您的 Flask API 发送一个请求。检查您从服务器收到的信息。验证响应内容、标头和状态代码是否都与预期结果相符。
  • 验证授权:如果您的端点需要授权,请确保请求包含所需的凭据或身份验证令牌。您可以在“授权”选项卡下为每个请求或整个集合配置身份验证信息。
  • 管理环境变量:如果您的 Flask API 在多个上下文(开发、暂存和生产)中运行,您可能有不同的基本 URL 或其他变量。在 Postman 中,您可以通过单击右上角的齿轮图标,然后从菜单中选择“管理环境”来配置环境。

使用 Postman 测试 API

开发人员可以使用 Postman 这个强大的工具来设计、分发、测试和记录 API。它的主要优点之一是能够对 API 端点执行自动化测试。此类测试可以确认您的 API 按预期工作,并在问题影响实际应用程序之前发现它们。

  • 断言:创建断言以验证标头、正文内容和响应状态。
  • 预请求脚本:在将请求发送到 API 之前运行 JavaScript 代码。
  • 测试脚本:在收到 API 响应后运行 JavaScript 脚本。
  • 集合运行:要同时测试多个端点,请按预定顺序执行一系列 API 调用。
  • 环境变量:使用变量来处理多个环境,例如开发、暂存和生产。

在 Postman 中编写测试

Postman 使用 JavaScript 进行脚本编写,使测试编写变得简单易行。以下是基本 Flask API 测试的一些示例。

示例 1:测试响应状态码

检查对 /api/users 端点的 GET 调用是否返回 200 OK 响应。

  • 选择请求:在 Postman 集合中,选择对 `/api/users` 的 GET 请求。
  • 导航到“测试”选项卡:单击请求的“测试”选项卡。
  • 添加测试脚本
  • 说明:`pm.test` 使用指定的名称创建一个新测试。要查看响应状态码是否为 200,请运行 `pm.response.to.have.status(200)`。

示例 2:测试响应正文

确保响应正文中存在用户列表。

  • 选择请求:在 Postman 集合中,选择对 `/api/users` 的 GET 请求。
  • 导航到“测试”选项卡:单击请求的“测试”选项卡。
  • 添加测试脚本
  • 说明:`pm.response.json()` 将响应正文转换为 JSON。`pm.expect(jsonData).to.be`要确定解析的 JSON 数据是否为数组,请使用 `an('array')` 函数。

示例 3:测试响应正文中的特定字段

检查每个用户对象是否具有 `username` 字段。

  • 选择请求:在 Postman 集合中,选择对 `/api/users` 的 GET 请求。
  • 导航到“测试”选项卡:单击请求的“测试”选项卡。
  • 添加测试脚本
  • 说明:`jsonData.forEach` 循环遍历数组中的每个用户对象。`pm.expect(user).to.have.property('username')` 验证每个用户对象中是否存在 username 字段。

示例 4:测试响应时间

确保 `/api/users` 端点的响应时间少于 200 毫秒。

  • 选择请求:在 Postman 集合中,选择对 `/api/users` 的 GET 请求。
  • 导航到“测试”选项卡:单击请求的“测试”选项卡。
  • 添加测试脚本
  • 说明:`pm.response.responseTime` 获取请求的响应时间。代码 `pm.expect(pm.response.responseTime).to.be.below(200)` 确定响应时间是否小于 200 毫秒。

这些示例向您展示了如何充分利用 Postman 的测试功能来确保您的 Flask API 按预期工作。

高级用法和技巧

处理身份验证

身份验证在处理 API 时至关重要,尤其是在生产环境中,以确保只有授权的个人或系统才能访问端点。Postman 提供多种身份验证技术来模拟真实世界场景并全面测试您的 API。

配置 Postman 集合以进行身份验证的端点

  • 基本身份验证:要使基本身份验证正常工作,每个请求都必须包含用户名和密码。在 Postman 中请求的“授权”选项卡上选择“基本身份验证”选项,可以轻松配置基本身份验证。输入用户名和密码后,Postman 会自动将其添加到请求标头中。
  • Bearer Token 身份验证:此身份验证类型涉及将令牌(通常使用 OAuth 2.0 流程获取)与每个请求一起发送。通过在“授权”选项卡中选择“Bearer Token”选项,Postman 可以方便地进行 Bearer Token 身份验证。输入令牌后,Postman 会将其包含在请求标头中。
  • API 密钥身份验证:一些 API 需要 API 密钥才能访问某些端点。通过在“授权”选项卡上选择“API Key”选项,Postman 使您能够设置 API 密钥身份验证。如果您在请求标头中输入 API 密钥和密钥参数值,Postman 将包含

使用环境和变量

Postman 环境和变量提供了一种强大的方法来处理请求的各种数据类型和配置。它们使您能够优化工作流程,这在同时管理多个环境(包括生产、暂存和开发)时尤其有用。

Postman 环境和变量说明

  • 环境:环境是 Postman 中键值对的集合,代表适用于不同请求的变量。您可以快速切换不同的设置,因为每个环境都可以拥有其变量。
  • 变量:在 Postman 中,变量可用于存储动态数据,例如身份验证令牌、API 密钥和 URL。它们可以在脚本、正文、标头和请求 URL 中使用。

在 Postman 中设置和使用环境的示例

  • 设置环境:打开 Postman,选择“管理环境”,然后单击“添加”。为您的环境命名(例如“开发”),并包含对应于您变量的键值对(例如“base_url”:“https://:5000”)。
  • 在请求中使用变量:您可以使用 `{{variable_name}}` 符号在请求中引用环境变量。例如,如果您有一个名为 `base_url` 的变量,则可以使用 `{{base_url}}/api/resource` 作为您的请求 URL。
  • 切换环境:Postman 通过允许您从下拉菜单中选择所需的环境,轻松地在环境之间切换。这使您可以在不手动修改的情况下针对不同的设置测试您的请求

自动执行集合运行

如果您希望在每次代码库发生更改时自动测试 API,您需要在持续集成和部署 (CI/CD) 管道中自动执行集合运行。

从命令行运行 Postman 集合的 Newman 简介

  • Newman 是 Postman 的命令行集合运行程序,您可以在 CI/CD 工作流中使用它,或者直接从终端运行和测试您的 Postman 集合。
  • 它提供了一种自动执行 API 测试并将其无缝集成到您的开发流程中的方法。

设置 CI/CD 管道以自动执行 API 测试的基本示例

  • 安装 Newman:使用 npm(Node 包管理器)通过键入 `npm install -g newman` 来全局安装 Newman。
  • 导出 Postman 集合:您可以使用 Postman 的导出功能将 Postman 集合导出为 JSON 文件。
  • 创建 CI/CD 管道脚本:创建 CI/CD 管道脚本:使用导出的 Postman 集合,在您选择的 CI/CD 工具(Jenkins、Travis CI 等)中编写一个脚本来运行 Newman。脚本应包括安装依赖项、使用集合文件启动 Newman 以及处理测试结果。
  • 运行管道:当更改推送到您的代码存储库时,CI/CD 管道将启动。这称为运行管道。Newman 将运行测试,执行 Postman 集合,并提供有关 API 功能和效率的反馈。

通过将 Newman 集成到您的 CI/CD 管道中,您可以确保在开发和部署的每个级别都对您的 API 进行全面测试。这将导致更可靠、更持久的应用程序。

结论

使用 flask2postman 从 Flask 应用程序创建 Postman 集合,可以简化 API 的测试和文档编制过程,从而提高代码稳定性和开发速度。开发人员可以通过利用 flask2postman 自动创建详尽的 Postman 集合,这些集合准确地反映了他们 Flask 应用程序的端点和配置。