自动化测试与持续集成/持续部署的集成

在软件开发过程中,自动化测试是确保代码质量的关键环节。为了提高效率,通常会将测试集成到持续集成/持续部署(CI/CD)流程中。本文将介绍如何将Postman的命令行工具Newman集成到CI/CD流程中,以实现代码提交时自动执行测试用例,并确保只有通过测试的代码才能继续构建。

使用Docker BYO VM,并配置了Docker CLI API调用,具体配置方法可以参考。此外,还设置了基于TFS 2017的持续集成(CI/CD),配置方法可以参考。

导出测试用例

Postman中,导出了测试集合以及支持的环境文件。这些文件随后被放置在项目文件夹中的Test文件夹中,与证书文件(参见CI/CD指南)和npmrc文件(参见EAR指南)一起。

测试Dockerfile

实现这一过程的关键在于使用一个单独的Dockerfile进行测试(并放置在测试文件夹中)。这个Dockerfile主要做了以下六件事:

  • 创建一个单独的测试镜像,该镜像永远不会部署到EAR
  • 安装Node
  • 配置Node以使用EAR(复制上述npmrc文件)
  • 从EAR安装Newman
  • 安装测试文件(上述json文件)
  • 安装Dev Publish文件

更新构建定义

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

  1. 构建测试镜像 - 引用测试Dockerfile,并给镜像一个唯一的名称:
  2. 运行测试镜像 - 执行测试镜像,指定一个容器名称,将在下一步中引用这个名称。注意:确保检查“在后台运行”选项。
  3. 运行Newman测试 - 使用Docker执行命令对测试容器执行newman测试。

结果

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

成功测试示例

成功的测试示例将展示测试通过的情况。

测试失败示例

测试失败示例将展示测试未通过的情况。

注意

使用单独的Dockerfile重新安装dev publish文件并不是最优的。理想情况下,应该使用多阶段构建来从dev镜像构建测试镜像。或者至少,在创建测试镜像时引用dev镜像。然而,这些方法需要使用多阶段构建或FROM语句中的ARGS。

2018年10月18日:初始版本

代码示例

以下是使用Dockerfile和Newman进行测试的示例代码:

# Dockerfile for testing FROM node:latest COPY . /app WORKDIR /app RUN npm install -g newman RUN npm install CMD ["newman", "run", "collection.json", "--environment", "environment.json"]
沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485