上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
3.2.2 测试环境
测试环境,顾名思义,是用来对软件产品进行测试的环境。与开发环境不同,测试环境一般不在本机中搭建,而是在单独的服务器中搭建。因为微服务和容器有着天然的亲和性,所以测试环境应当运行在Docker中。测试环境又分为两种,即针对单个微服务的回归测试环境和从前台到后台的端到端测试环境。
1.回归测试环境
回归测试可以发生在持续集成流程中。读者可以在本书第9章查看更多关于持续集和持续部署的内容。我们团队采用基于Jenkins的持续集成和持续部署方案。代码到主干分支后的合并会触发Jenkins的流水线,从而拉起云平台的计算实例,完成微服务的持续集成。
以Golang语言为例,Jenkins流水线会在云平台计算实例中使用Git命令检出远端代码,使用docker-compose命令启动此次构建所依赖的服务,使用go build命令构建出微服务的二进制文件,运行二进制文件以启动微服务,再使用回归测试框架运行回归测试用例,测试成功后使用Dockerfile构建服务镜像并将其推送到私有镜像仓库中。
2.端到端测试环境
端到端测试与回归测试的目的不同,前者是从前台到后台的功能性测试,后者则是为特定微服务进行的测试,是前者的基础。因此,端到端测试可以不用发生在持续集成或持续部署流程中,定期运行即可。我们团队同样采用了Jenkins来搭建端到端测试环境,并使用Jenkins的build periodically功能来构建定时任务。
Jenkins流水线会在云平台计算实例中使用Git命令检出远端代码,使用docker-compose命令启动此次构建所依赖的服务,最后使用端到端的试框架运行端到端测试用例并生成测试报告。