用途
Newman CI/CD Integration Generator 是一个用于生成 CI/CD 流水线配置的技能。当用户希望在 CI 流水线中运行 Newman、把 Postman 集合接入自动化构建,或在 GitHub Actions、GitLab CI、Jenkins 等平台中设置 API 测试时,可以使用该技能生成完整、可直接复制使用的流水线配置。
生成前需确认的信息
在生成配置前,需要确定以下内容:
- CI 平台:GitHub Actions、GitLab CI、Jenkins、Azure DevOps、CircleCI 或 Bitbucket。
- 集合来源:仓库中的本地文件,或 Postman API URL。
- 环境配置:仓库中的本地环境文件,或由 CI 密钥注入的环境变量。
- 报告类型:JUnit XML(用于 CI 测试结果面板)、HTML 报告,或两者都要。
- 与 Newman 兼容的 Node.js 版本偏好。
- 触发条件:每次 push、pull request、定时任务,或部署之后。
- 测试失败时是否让构建失败(通常为是)。
- CI 信任与凭据处理方式。
安全与凭据要求
执行前应审查集合脚本和目标 URL:Postman 脚本和请求可能泄露密钥或改动服务。只运行已授权的沙箱集合,不要向不可信的 pull request 暴露生产凭据。应使用项目已审查的锁文件/提交策略固定依赖和 action,而不是原样复制会变动版本的全局安装。操作系统环境变量不会自动填充 Postman 变量,应通过 -e 传入受保护的临时环境 JSON,或使用经过明确审查的 runner 集成。避免在命令行参数中出现真实密钥、开启 shell 跟踪,以及生成包含请求/响应细节的公开 HTML 产物;报告应脱敏,并限制访问与保留时间,任务结束后删除临时密钥。必需的测试失败必须保持为失败。
主要能力
该技能可按平台生成包含以下环节的配置:检出代码、安装 Node.js、全局安装 newman 与 newman-reporter-htmlextra、运行 Postman 集合、导出 JUnit XML 和 HTML 报告、在 CI 界面发布测试结果、上传报告产物。资料给出了 GitHub Actions、GitLab CI、Jenkins(声明式流水线)、Azure DevOps 和 CircleCI 的示例配置,其中包含 secrets 注入与 artifact 发布步骤。
使用方式与最佳实践
- 密钥不得硬编码,应通过各平台的 CI 变量/密钥注入:GitHub 在 Settings > Secrets and Variables > Actions 配置,GitLab 在 Settings > CI/CD > Variables 配置,Jenkins 在 Manage Jenkins > Credentials 配置,Azure DevOps 在 Pipelines > Variables 配置。
- 使用受信任的密钥提供方生成受保护的临时 Newman 环境文件,仅通过
-e传入其路径;不要把真实密钥放进--env-var进程参数。示例假设该受保护文件已准备好,任务结束后应删除并脱敏报告。 - 仓库中保存集合与环境文件(不含密钥),建议目录结构为
collections/、environments/和由 Newman 生成的results/,并将results/加入.gitignore。 - 使用
if: always()/when: always,确保 Newman 失败时测试结果产物仍能发布。 - Newman 在有测试失败时退出码为 1,会使流水线步骤自动失败;如需在首个失败处停止,可使用
--bail。
输出后的可选后续步骤
该技能交付配置后,会询问用户是否要为这些命令生成 Postman 测试用例。若用户选择是,则检查 postman-testcase-generator 技能是否已安装:已安装则读取并遵循其说明,以本次 CI/CD 命令输出作为输入;未安装则提示用户安装后重新运行。若用户选择否,任务结束。
限制
仅当任务与上游来源及本地项目上下文明确匹配时使用该技能。应用变更前应验证命令、生成的代码、依赖、凭据和外部服务行为。示例不能替代针对具体环境的测试、安全审查,以及对破坏性或高成本操作的用户批准。官方资料未提供收费、价格等信息,暂未提供。