Newman CI/CD 集成生成器
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @org-02qudk26/newman-cicd-integration。
技能介绍
问题背景
Postman 集合在本地用 Newman 跑通,并不等于能在 CI 里稳定复现。各平台(GitHub Actions、GitLab CI、Jenkins 等)的语法、密钥注入方式、工件上传和「步骤失败但还要留报告」的行为都不一致;手写 YAML 或 Jenkinsfile 时,很容易漏掉 Node 版本、环境变量引用 或 always 发布测试结果 这几块,导致流水线绿了但接口其实挂了,或者失败了却看不到 JUnit/HTML。
技能如何工作
本技能在生成配置前会先对齐你的约束,而不是甩一份通用模板:
- CI 平台 — 选定 GitHub Actions、GitLab CI、Jenkins(声明式)、Azure DevOps、CircleCI、Bitbucket 等
- 集合来源 — 仓库内文件,或 Postman API URL
- 环境 — 本地 env 文件,或由 CI 密钥注入的变量
- 报告器 — JUnit XML(对接 CI 测试面板)、HTML,或两者
- Node.js 版本(默认 18)、触发条件(push、PR、定时、部署后)、失败是否阻断构建(通常应阻断)
生成时会按平台写正确的密钥/变量语法,用 --env-var "KEY=$SECRET_NAME" 等方式引用敏感值;建议集合与环境文件(不含密钥)进仓库,results/ 进 .gitignore;并在 Newman 步骤后配合 if: always() / when: always,保证 Newman 以退出码 1 失败时仍能发布测试工件。需要「首个失败即停」时可加 --bail。
交付 CI/CD 配置后,技能会询问是否继续生成 Postman 测试用例;若选是且已安装 postman-testcase-generator,会按该技能说明、以本次流水线输出为输入继续;否则提示安装后再跑。
适用边界
- 输出的是可复制粘贴的流水线片段,你仍需在对应平台配置 Secrets/Variables(GitHub Actions Secrets、GitLab CI Variables 等),切勿在仓库里硬编码凭据。
- 技能覆盖多平台模板与 Newman 运行/报告的最佳实践,但不替代你对集合质量、环境变量命名和分支策略的评审。
- 与 Postman 用例生成是可选衔接,依赖
postman-testcase-generator是否已安装。
使用场景
- 已有 Postman 集合,要在 GitHub Actions 的 PR 流水线里安装 Newman 并跑集合,失败时阻断合并
- GitLab CI 需要在每次 push 后执行仓库内的集合,并把 JUnit XML 发布到 MR 的测试报告面板
- Jenkins 声明式流水线要在部署后触发 Newman,环境变量从 Credentials 注入而非写进 env 文件
- Azure DevOps / CircleCI 项目要把 Postman API URL 拉取的集合纳入定时调度,并产出 HTML 报告供排查
适合人员
- 负责接口回归的后端工程师,要把本地已验证的 Postman 集合接到 GitHub Actions 或 GitLab CI 并配置密钥变量
- 编写 API 自动化方案的测试工程师,需要在 CI 里同时产出 JUnit 与 HTML 报告,且测试失败时构建必须红
- 维护 Jenkins/Azure DevOps 流水线的 DevOps,要按平台语法写 Newman 步骤并保证 always 发布测试工件
- 刚接手微服务项目的技术负责人,不熟悉各 CI 的 Newman 模板,需要可复制配置并对照最佳实践改触发器与 Node 版本