多年以来,在桌面版之外运行 Postman 集合(collections)意味着只能使用一个工具:Newman。随后,Postman 发布了其官方命令行工具 Postman CLI,现在有两种方式可以实现大致相同的功能。两者都可以在脱离 GUI 的情况下运行集合,都适用于 CI/CD 流水线,并且执行相同的测试脚本。那么为什么要提供两个工具?哪一个更适合你的流水线呢?
简而言之:Newman 是一款开源、无需账号的运行器,自早期以来一直是社区标准。Postman CLI 是较新的、与账号关联的工具,它将运行结果同步回 Postman 云端并在那里生成报告。正确的选择取决于你是否希望将结果存储在 Postman 平台中,还是更倾向于一个仅需集合文件即可运行的运行器。本文将对它们进行客观对比,以便你做出决定。
什么是 Newman
Newman 是 Postman 最初的命令行集合运行器。它是开源的,作为 npm 包分发,并且完全免费。它运行从 Postman 导出的集合文件,执行每个请求和每个 pm.test 断言,并通过退出代码报告结果。
Newman 的核心特征是独立性。它不需要 Postman 账号、API Key 或与 Postman 服务端的网络连接。你只需给它一个 JSON 集合文件,它就能运行。这使得它在受限的环境中具有可预测性且易于理解。
npm install -g newman
newman run checkout-api.postman_collection.json \
--environment staging.postman_environment.json
Newman 同样轻量且可扩展。它内置了 CLI 和 JUnit 报告器,社区还维护了额外的报告器,例如用于生成丰富 HTML 输出的 newman-reporter-htmlextra。由于它是一个 Node.js 包,你也可以在脚本中通过编程方式调用它。我们关于 Newman 与 Postman 区别的指南涵盖了它与桌面版的关系。
什么是 Postman CLI
Postman CLI 是 Postman 构建并推荐的官方命令行工具。它是一个通过脚本安装的单一二进制文件,而不是 npm 包,并且通过 API Key 与你的 Postman 账号绑定。
# 安装(以 macOS/Linux 为例)
curl -o- "https://dl-cli.pstmn.io/install/osx_64.sh" | sh
# 身份验证,然后运行
postman login --with-api-key YOUR_API_KEY
postman collection run checkout-api
关键区别在于云端连接。当你使用 Postman CLI 运行集合时,它可以直接通过 ID 从 Postman 工作区拉取集合,并将运行结果推送到 Postman 平台,结果会显示在工作区请求历史和仪表板中。最大的卖点是 API 治理和安全检查:Postman CLI 可以在流水线期间对你的接口定义进行 lint 检查,在构建过程中发现数据模型(schema)和规则违规。
因此,Postman CLI 不仅仅是一个纯粹的集合运行器,它更像是 Postman 平台的一个流水线代理。如果你的团队在 Postman 云端协作,并希望将运行历史和治理集中在那里,那么这种集成就是选择它的理由。
维度对比
| 维度 | Postman CLI | Newman | | --- | --- | --- | | 源码 | 闭源,Postman 官方工具 | 开源 | | 安装 | 安装脚本,单个二进制文件 | npm 包 | | Postman 账号 | 必须(通过 API Key 登录) | 不需要 | | 集合来源 | 通过 ID 从 Postman 云端拉取,或使用本地文件 | 本地 JSON 文件 | | 运行结果 | 上报至 Postman 平台 | 终端输出和报告文件 | | API 治理/Lint 检查 | 内置 | 不包含 | | 报告器 | 有限,结果保存在 Postman 中 | CLI、JUnit 以及社区提供的 HTML 报告器 | | 离线使用 | 有限,围绕云端设计 | 只要文件在本地,即可完全离线 | | 成熟度 | 较新 | 历史悠久的社区标准 | | 成本 | 免费,但受 Postman 套餐额度限制 | 免费,无需账号 |
决定性的核心在于 Postman 云端。Postman CLI 旨在将结果和治理数据反馈到 Postman 平台。而 Newman 则旨在本地运行文件并生成报告,不依赖 Postman 服务端。
如何在 CI/CD 中应用
这两种工具都适用于任何 CI 供应商,包括 Jenkins、GitHub Actions、GitLab CI 和 CircleCI。但其运作机制有所不同。
使用 Newman 时,你需要将集合和环境 JSON 文件提交到仓库,在任务中安装 Newman 并运行,如果测试失败,非零的退出代码将导致构建失败。所有内容都包含在仓库和流水线中。我们在 CI/CD 自动化接口测试和使用 GitHub Actions 进行接口测试自动化的指南中展示了这种模式。
使用 Postman CLI 时,你需要将 Postman API Key 作为 Secret 存储在 CI 供应商中,进行认证,然后通过 ID 运行集合。集合是从 Postman 云端拉取的,而不是从仓库中拉取,结果会回传到工作区。这使得 Postman 成为单一事实来源,一些团队更喜欢这种方式,而另一些团队则觉得这是一种限制。
一个实际的区别是:Newman 让测试与代码同步进行版本管理,因为集合 JSON 存放在仓库中。而 Postman CLI 则在 Postman 平台上管理测试版本,因为它通过 ID 拉取。在选择之前,请确定你的团队希望以哪种方式作为单一事实来源。
治理视角
最能区分这两个工具的功能是 API 治理。Postman CLI 可以针对存储在 Postman 工作区中的接口定义执行 postman api lint 风格的检查,根据命名、安全性、数据模型完整性和一致性规则对其进行评估。当该检查在流水线中运行时,任何违反规则的定义都会在更改合并之前导致构建失败。
Newman 没有等效功能。它运行集合并报告测试结果,这就是它的职责边界。如果你的组织关心自动执行接口设计标准,那么该功能仅存在于 Postman CLI 中,这也是选择它的一个真实理由。如果你不在流水线中强制执行设计规则,那么该功能就无关紧要,Newman 的简洁性更胜一筹。
这一点值得诚实面对,因为它重新定义了对比。Postman CLI 不仅仅是“更新版的 Newman”。它是一种不同类型的工具:它是 Postman 平台的流水线代理,恰好包含了一个集合运行器。而 Newman 仅仅是一个集合运行器。一旦你这样看待它,选择就不再仅仅关乎功能,而更多地在于你是否希望将测试完全绑定到 Postman 的平台上。
迁移考量
已经在运行 Newman 的团队有时会询问是否应该切换到 Postman CLI。很少有强有力的理由这样做。Newman 仍在维护,依然免费,并且可以在所有 CI 提供商中运行。切换意味着需要添加 API 密钥作为 CI 密钥(secret),更改集合的来源方式,并接受对 Postman 云端的依赖。除非你特别需要集中的运行历史记录或治理检查,否则迁移的成本将高于其收益。
从零开始的团队面临着更有趣的选择。如果团队致力于将 Postman 作为其主要工具并购买了付费方案,Postman CLI 可以将一切保持在一个生态系统中,是自然的选择。如果团队想要灵活性、代码库版本化的测试,以及摆脱对单一供应商云端的依赖,那么 Newman 或完全非 Postman 的工具会更有意义。没有普适的标准答案;只有最适合你团队现有工作方式的答案。
你该如何选择
如果你想要一个不依赖账号的运行器,如果你希望在代码库中对测试进行版本控制,如果你需要通过社区报告器生成丰富的 HTML 报告,或者你在不允许访问 Postman 云端的受限环境中运行,请选择 Newman。Newman 的独立性和成熟度使其成为大多数流水线的安全首选。
如果你的团队深度使用 Postman 平台,如果你希望在那里集中查看运行历史记录和仪表盘,或者流水线中的接口治理和接口定义 lint 检查对你很有价值,请选择 Postman CLI。对于以 Postman 为中心的团队来说,其紧密的云端集成是一个真正的优势。
如果你正在权衡这个决定,值得问问自己是否真的想被绑定在 Postman 生态系统中。有关其他方法,请参阅我们的指南:如何在没有 Newman 的情况下在 CI 中运行 Postman 集合,以及我们对不使用 Postman 进行接口测试的更广泛探讨。
单一工具替代方案:Apifox
Postman CLI 和 Newman 都假设你在 Postman 中编写测试。Apifox 消除这种隔阂。你可以在一个应用程序中设计 API、调试请求、并通过可视化断言构建自动化测试场景,然后使用内置的命令行 runner 在 CI/CD 中运行这些场景。无需导出步骤,也没有独立的 runner 包,因为测试定义和执行引擎属于同一个产品。
Apifox 还集成了 API 设计、mock 服务端和性能测试,因此团队无需拼凑工具即可覆盖完整的 API 生命周期。你可以下载 Apifox 并免费使用其测试功能,包括用于流水线的 CLI runner。
常见问题解答
Postman CLI 正在取代 Newman 吗?
Postman 将 Postman CLI 定位为其官方推荐的命令行工具,但 Newman 仍在维护且被广泛使用。如果你想要一个无需账号、支持仓库版本管理的 runner,Newman 仍然是更好的选择。两者可能会共存一段时间,因此没有迫切的迁移需求。
Postman CLI 需要 Postman 账号吗?
是的。Postman CLI 使用 Postman API key 进行身份验证,旨在将运行结果连接回你的 Postman 工作区。相比之下,Newman 不需要账号,完全基于本地集合文件运行。
哪个工具的报告更好?
Newman 通过社区报告器提供更灵活的报告功能,特别是用于详细 HTML 输出的 newman-reporter-htmlextra 和用于 CI 仪表盘的 JUnit XML。Postman CLI 将结果报告到 Postman 平台本身,如果你的团队在该平台上工作,这很方便,但对于独立的报告文件来说灵活性较差。
Postman CLI 可以运行本地集合文件吗?
Postman CLI 可以运行本地文件中的集合,但它是围绕通过 ID 从 Postman 云端获取集合并回传结果而构建的。如果你想要一个将本地 JSON 文件视为单一事实来源且无需云端参与的工具,Newman 更自然地契合这种模式。
在 CI 中哪个更快?
对于纯粹的集合执行,差异很小,取决于集合大小和网络状况。Newman 的资源占用更小,且没有云端往返。Postman CLI 增加了身份验证和将结果同步到平台的开销。对于大多数流水线,请根据工作流的契合度而不是原始速度进行选择。
开发必备:API 全流程管理神器 Apifox
介绍完上文的内容,我想额外介绍一个对开发者同样重要的效率工具 —— Apifox。作为一个集 API 文档、调试、设计、测试、Mock、自动化测试于一体的工具,Apifox 是目前提升研发效率的首选。
如果你正在开发项目,不妨试试其极其友好的界面设计,它完全兼容 Postman 和 Swagger 数据格式,导入数据非常方便,,即使是新手也能很快上手,点击这里即可注册使用。

值得一提的是,除了个人和常规团队使用,针对有高安全合规要求、或需要在内网环境协作的企业,Apifox 还提供了深度定制的私有化部署方案。
获取专属报价与部署方案
详细的私有化部署系统架构与安全白皮书
针对您公司规模的专属报价单
免费的 1v1 专属产品演示 (Demo) 机会