在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"


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

4. 配置流水线
在Azure DevOps Server中配置流水线,只需要勾选发布“将测试结果发布到流水线中”就可以了;当流水线完成以后,Azure DevOps Server会将测试结果文件(一般是一个xml文件)的结果,自动发布到流水线结果中。
5. 查看单元测试结果
流水线运行完成后,我们就可以在测试页签中查看到单元测试结果,如下图:
同时,如果你下载单元测试结果,可以查看到测试套件的详细信息

6. 常见问题
Consul服务启动不了:
一般原因是已经手动启动了Consul进程,8500端口被占用
IE浏览器查看Consul服务器,提示错误:
Windows Server上自带的IE 11不能正常访问Consul,换成Chrome,问题消失
------------------------------------------------------------
http://www.cnblogs.com/danzhang/ DevOps MVP 张洪君
------------------------------------------------------------
在Azure DevOps Server中运行基于Spring Boot和Consul的微服务项目单元测试的更多相关文章
- Spring Boot 是 Spring 的一套快速配置脚手架,可以基于Spring Boot 快速开发单个微服务
Spring Boot 是 Spring 的一套快速配置脚手架,可以基于Spring Boot 快速开发单个微服务,Spring Cloud是一个基于Spring Boot实现的云应用开发工具:Spr ...
- 在Azure DevOps Server 中提交Maven 依赖包(mvn deploy-file)
Contents 1. 概述 2. 必要准备 安装Java 下载安装Maven 3. 服务器配置 新建连接源 4. 客户端配置 5. 上传maven包文件 6. 常见问题 Maven最新版本3.6.2 ...
- 基于Spring Cloud、JWT 的微服务权限系统设计
基于Spring Cloud.JWT 的微服务权限系统设计 https://gitee.com/log4j/pig https://github.com/kioyong/spring-cloud-de ...
- spring boot / cloud (十四) 微服务间远程服务调用的认证和鉴权的思考和设计,以及restFul风格的url匹配拦截方法
spring boot / cloud (十四) 微服务间远程服务调用的认证和鉴权的思考和设计,以及restFul风格的url匹配拦截方法 前言 本篇接着<spring boot / cloud ...
- Spring Boot 和 Docker 实现微服务部署
Spring boot 开发轻巧的微服务提供了便利,Docker 的发展又极大的方便了微服务的部署.这篇文章介绍一下如果借助 maven 来快速的生成微服务的镜像以及快速启动服务. 其实将 Sprin ...
- Spring boot学习1 构建微服务:Spring boot 入门篇
Spring boot学习1 构建微服务:Spring boot 入门篇 Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框 ...
- 使用Ratpack与Spring Boot构建高性能JVM微服务
在微服务天堂中Ratpack和Spring Boot是天造地设的一对.它们都是以开发者为中心的运行于JVM之上的web框架,侧重于生产率.效率以及轻量级部署.他们在服务程序的开发中带来了各自的好处.R ...
- Spring Cloud Alibaba(2)---RestTemplate微服务项目
RestTemplate微服务项目 前言 因为要运用 Spring Cloud Alibaba 开源组件到分布式项目中,所以这里先搭建一个不通过 Spring Cloud只通过 RestTemplat ...
- 基于Spring Boot架构的前后端完全分离项目API路径问题
最近的一个项目采用前后端完全分离的架构,前端组件:vue + vue-router + vuex + element-ui + axios,后端组件:Spring Boot + MyBatis.之所以 ...
随机推荐
- 拎壶学python3-----(2)python之if语句用法
在生活中我们经常遇到各种选择,比如玩色子,猜大小,再比如选择未来另一半.python也经常会遇到这样的选择,这时候if语句显得尤为重要. 下边我们看一个简单的例子 如果是二选一怎么做呢?如下 如果多个 ...
- url中拼接中文参数,后台接收为乱码的问题
遇到在URL中拼接中文的参数,后台拿到的数据为乱码的问题,这里来说一下问题出现的原因与解决方法. 大家比较关心的应该是解决的方法,因此先说解决方法. 解决方法 解决的方法是在客户端对这个中文参数进行编 ...
- oracle11g安装教程
- efcore dotnet cli add-migrations update-database
add-migrations update-database 如何通过dotnet cli调用 dotnet tool install --global dotnet-ef dotnet ef mig ...
- WPF默认控件模板的获取和资源词典的使用
一.获取默认的控件模板 WPF修改控件模板是修改外观最方便的方式,但是会出现不知道原来的控件的模板长什么样,或者想用来参考的,下面分享一下获取某控件默认控件模板的方式(已Button为例): 1.创建 ...
- PHP面试题2019年滴滴出行工程师面试题及答案解析
一.单选题(共30题,每题5分) 1.下列关于PHP垃圾回收的说法,错误的是? A.开启/关闭垃圾回收机制可以通过修改php配置实现 B.可以在程序中使用gc_enable() 和 gc_disabl ...
- SSM框架之Mybatis(2)CRUD操作
Mybatis(2)CRUD 1.基于代理Dao实现CRUD操作 使用要求: 1.持久层接口(src\main\java\dao\IUserDao.java)和持久层接口的映射配置(src\main\ ...
- 为Dynamics 365 USD设置使用Chrome进程来驻留Web应用程序
我是微软Dynamics 365 & Power Platform方面的工程师罗勇,也是2015年7月到2018年6月连续三年Dynamics CRM/Business Solutions方面 ...
- 重新认识快速视图窗体(Quick View Form)
关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复158或者20151009可方便获取本文,同时可以在第一时间得到我发布的最新的博文信息,follow me! 在我的 微软Dynamics C ...
- [b0023] python 归纳 (九)_html解析-lxml
# -*- coding: utf-8 -*- """ 学习lxml解析网页 程序功能: 解析 360影视 电影排行榜中的信息 https://www.360kan.co ...