在 Docker 上的 TFS 中使用 Newman 进行测试





5.00/5 (1投票)
在 Docker 上的 TFS 2017 中使用 Newman(
引言
最近,我们希望将持续测试添加到现有的 CI/CD 流程中。我们希望确保在代码签入时,能够自动进行测试,并且只有通过测试后才会继续构建。这也有助于证明已针对代码执行了测试用例。由于我们使用 Postman 进行微服务测试用例,因此我们决定将其命令行版本 Newman 集成到我们的 CI/CD 中。
一些背景知识
- 我们使用 Docker BYO VM 并将其配置为 Docker CLI API 调用 - 关于我们如何操作的详细信息可以在这里找到:开发者 Docker 配置文章
- 我们按照以下说明在 TFS 2017 上设置了持续集成 (CI/CD):使用 Docker 在 TFS 上集成文章
- Newman 的说明:https://github.com/postmanlabs/newman
- Node/NPM 与企业制品库 (EAR) 的说明
导出测试用例
在 Postman 中,我们导出了测试集合以及支持的环境文件。
然后将这些文件放置在项目文件夹中的 Test 文件夹中,以及证书文件(请参阅 CI/CD 说明)和 npmrc 文件(请参阅上面的 EAR 说明)。
测试 Dockerfile
使这项工作成功的关键是单独的 dockerfile,仅用于测试(并放置在测试文件夹中)。此 dockerfile 执行 6 个主要操作
- 创建一个单独的测试镜像,该镜像将绝不会部署到 EAR
- 安装 Node
- 配置 Node 以使用 EAR(复制上面列出的 npmrc 文件)
- 从 EAR 安装 Newman
- 安装测试文件(上面列出的 json 文件)
- 安装 Dev Publish 文件
更新构建定义
当前构建定义现在需要更新以执行 3 个新步骤
- 构建测试镜像 - 引用测试 dockerfile 并为镜像指定一个唯一的名称
- 运行测试镜像 - 执行测试镜像,指定一个将在下一步中引用的容器名称。
注意:请务必选中“在后台运行”选项。 - 运行 Newman 测试 - 使用 Docker 执行命令针对测试容器执行 newman 测试。
结果
当代码签入时,将针对测试用例执行测试。如果测试通过,Newman 步骤将成功,否则 Newman 步骤将失败,从而停止构建过程。
成功测试示例
测试失败示例
注意:拥有一个单独的 dockerfile 重新安装 dev publish 文件不是最优的。理想情况下,我们应该使用多阶段构建从 dev 镜像构建测试镜像。或者至少,在创建测试镜像期间引用 dev 镜像。但是,这些方法需要使用多阶段构建或 FROM 语句中的 ARGS。
历史
- 2018年10月18日:初始版本