在软件开发过程中,自动化测试是确保代码质量的关键环节。为了提高效率,通常会将测试集成到持续集成/持续部署(CI/CD)流程中。本文将介绍如何将Postman的命令行工具Newman集成到CI/CD流程中,以实现代码提交时自动执行测试用例,并确保只有通过测试的代码才能继续构建。
使用Docker BYO VM,并配置了Docker CLI API调用,具体配置方法可以参考。此外,还设置了基于TFS 2017的持续集成(CI/CD),配置方法可以参考。
在Postman中,导出了测试集合以及支持的环境文件。这些文件随后被放置在项目文件夹中的Test文件夹中,与证书文件(参见CI/CD指南)和npmrc文件(参见EAR指南)一起。
实现这一过程的关键在于使用一个单独的Dockerfile进行测试(并放置在测试文件夹中)。这个Dockerfile主要做了以下六件事:
当前的构建定义现在需要更新以执行3个新步骤:
当代码被提交时,测试将针对测试用例执行。如果测试通过,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"]