65.9K
CodeProject 正在变化。 阅读更多。
Home

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

starIconstarIconstarIconstarIconstarIcon

5.00/5 (1投票)

2018年10月18日

CPOL

2分钟阅读

viewsIcon

6597

在 Docker 上的 TFS 2017 中使用 Newman(Postman) 进行持续测试

引言

最近,我们希望将持续测试添加到现有的 CI/CD 流程中。我们希望确保在代码签入时,能够自动进行测试,并且只有通过测试后才会继续构建。这也有助于证明已针对代码执行了测试用例。由于我们使用 Postman 进行微服务测试用例,因此我们决定将其命令行版本 Newman 集成到我们的 CI/CD 中。

一些背景知识

导出测试用例

在 Postman 中,我们导出了测试集合以及支持的环境文件。

然后将这些文件放置在项目文件夹中的 Test 文件夹中,以及证书文件(请参阅 CI/CD 说明)和 npmrc 文件(请参阅上面的 EAR 说明)。

测试 Dockerfile

使这项工作成功的关键是单独的 dockerfile,仅用于测试(并放置在测试文件夹中)。此 dockerfile 执行 6 个主要操作

  1. 创建一个单独的测试镜像,该镜像将绝不会部署到 EAR
  2. 安装 Node
  3. 配置 Node 以使用 EAR(复制上面列出的 npmrc 文件)
  4. 从 EAR 安装 Newman
  5. 安装测试文件(上面列出的 json 文件)
  6. 安装 Dev Publish 文件

更新构建定义

当前构建定义现在需要更新以执行 3 个新步骤

  1. 构建测试镜像 - 引用测试 dockerfile 并为镜像指定一个唯一的名称
  2. 运行测试镜像 - 执行测试镜像,指定一个将在下一步中引用的容器名称。
    注意:请务必选中“在后台运行”选项。

  3. 运行 Newman 测试 - 使用 Docker 执行命令针对测试容器执行 newman 测试。

结果

当代码签入时,将针对测试用例执行测试。如果测试通过,Newman 步骤将成功,否则 Newman 步骤将失败,从而停止构建过程。

成功测试示例

测试失败示例

注意:拥有一个单独的 dockerfile 重新安装 dev publish 文件不是最优的。理想情况下,我们应该使用多阶段构建从 dev 镜像构建测试镜像。或者至少,在创建测试镜像期间引用 dev 镜像。但是,这些方法需要使用多阶段构建或 FROM 语句中的 ARGS。

历史

  • 2018年10月18日:初始版本
© . All rights reserved.