在Azure DevOps Server中运行基于Spring Boot和Consul的微服务项目单元测试

1 概述

谈到微服务架构体系,绕不开服务发现这个功能。服务发现机制是简化微服务配置、实现容灾、水平扩缩容、提高运维效率的重要方式。在服务发现工具中,Consul在部署和使用方面与容器结合的天衣无缝,成为越来越多的企业作为服务发现的首选产品。
在微服务开发中,SpringBoot目前是最为广泛使用一个框架。SpringBoot+Consul成为一个比较经典的微服务组合。

作为DevOps软件研发运维一体化的研发管理平台产品,可以完美的支持上述微服务架构。下面我们就以单元测试的示例,来说明在Azure DevOps Server (原名TFS)中如何实现SpringBoot+Consul架构的持续集成(CI)功能。

2. 下载Consul for Windows

https://www.consul.io/downloads.html

3. 在代理中将Consul安装为服务器,自动启动

SpringBoot架构的单元测试中,验证服务发现和注册功能是一个比较基础的测试点。在开发人员的计算机中,通常会手动启动一个consul进程,用来实现本地测试。同样,作为服务器端的持续集成工具,我们需要在Azure DevOps Server的服务器上运行Consul服务。
下面我们使用Windows Server中常用的sc.exe工具创建Consul服务。

sc.exe create "Consul" binPath= "C:\consul_1.5.1_windows_amd64\consul.exe agent -dev" start=auto
sc.exe start "Consul"

image
image
服务启动以后,我们可以使用浏览器,查看Consul的运行情况:

image

4. 配置流水线

在Azure DevOps Server中配置流水线,只需要勾选发布“将测试结果发布到流水线中”就可以了;当流水线完成以后,Azure DevOps Server会将测试结果文件(一般是一个xml文件)的结果,自动发布到流水线结果中。image

5. 查看单元测试结果

流水线运行完成后,我们就可以在测试页签中查看到单元测试结果,如下图:
image
同时,如果你下载单元测试结果,可以查看到测试套件的详细信息

image

6. 常见问题

Consul服务启动不了

一般原因是已经手动启动了Consul进程,8500端口被占用

IE浏览器查看Consul服务器,提示错误:

Windows Server上自带的IE 11不能正常访问Consul,换成Chrome,问题消失

------------------------------------------------------------

http://www.cnblogs.com/danzhang/  DevOps MVP 张洪君

------------------------------------------------------------

猜你喜欢

转载自www.cnblogs.com/danzhang/p/11913673.html
今日推荐