一文搞定微服务测试本质

最近几年,微服务架构越来越火爆,逐渐被企业所采用。随着软件架构的变化,对应的软件测试策略需要作何调整呢?在这里我来先介绍一下微服务的相关概念以及微服务的主流框架SpringCloud,让大家对微服务有一个整体的认识,然后我在对如何进行微服务测试进行概要讲解。相信大家认真阅读本文后,对服微务一定会有从0到1的突破!

微服务概念

微服务英文名称Microservice,微服务架构模式就是将整个Web应用组织为一系列小的Web服务。这些小的Web服务可以独立地编译及部署,并通过各自暴露的API接口相互通讯。它们彼此相互协作,作为一个整体为用户提供功能,却可以独立地进行扩展。

要点

微服务的基本思想在于考虑围绕着业务领域组件来创建应用;

微服务主要框架包括:Dubbo、Spring Cloud、 Istio ;

对于互联网谈到微服务架构一定会谈到Devops即开发测试和部署运维的一体化;

微服务简化了开发,它将创建复杂系统的任务切分为数十乃至上百个小服务,这些小服务易于被小型的软件工程师团队所理解和修改。但是微服务并未真正地消除复杂性,而是将复杂性迁移到对大量服务的连接、管理和监控上;

微服务与SOA,微服务是SOA发展出来的产物,它是一种比较现代化的细粒度的SOA实现方式;

传统服务与微服务的区别

大家可以看到,传统服务是所有的功能都部署在一台机器上(上图左),通过增加服务器数量来扩容!而微服务是以业务为单位进行部署,不同的业务部署在不同的服务器上,业务使用频繁的还可以使用更多的资源进行部署(上图右侧,橘黄色部署了5个单元,而玫红色只部署了一个单元),这样就可以更合理的利用资源了!

传统设计与微服务在数据库方面设计的区别


大家可以看到传统服务的所有功能对应一个DB (上图左),而微服务可以根据不同的业务设计不同的DB (上图右,可以一个业务对应一个独立的DB)

微服务架构设计核心

1:我们把整个系统根据业务拆分成几个子系统。

2:每个子系统可以部署多个应用,多个应用之间使用负载均衡。

3:需要一个服务注册中心,所有的服务都在注册中心注册,负载均衡也是通过在注册中心注册的服务来使用一定策略来实现。

4:所有的客户端都通过同一个网关地址访问后台的服务,通过路由配置,网关来判断一个URL请求由哪个服务处理。请求转发到服务上的时候也使用负载均衡。

5:服务之间有时候也需要相互访问。例如有一个用户模块,其他服务在处理一些业务的时候,要获取用户服务的用户数据。

6:需要一个断路器,及时处理服务调用时的超时和错误,防止由于其中一个服务的问题而导致整体系统的瘫痪。

7:还需要一个监控功能,监控每个服务调用花费的时间等

SpringCloud

Spring Cloud是基于SpringBoot的一整套实现微服务的框架。他提供了微服务开发所需的配置管理、服务发现、断路器、智能路由、微代理、控制总线、全局锁、决策竞选、分布式会话和集群状态管理等组件。

官网:https://springcloud.cc/

特点:

分布式/版本化配置

服务注册和发现

路由

service - to - service调用

负载均衡

断路器

分布式消息传递

SpringCloud包括的主要组件如下图:

一个Spring Cloud 工程的pom配置文件如下,大家可以简单的理解为在SpringCloud

工程的pom.xml中,你需要什么功能,把他直接引入工程就可以了

在这里由于我们主要介绍微服务概念,所以就不过多解释springcloud相关的开发内容了。

微服务测试

前端UI

与传统测试没有区别,因为你只做功能那么你感受不到架构的变化!

服务端

微服务通常使用通过HTTP的REST来暴露,因此微服务的测试等价于接口测试。对微服务提供的接口进行功能、性能、安全测试,具体测试方法如下:

1.通过构建请求调用各个微服务接口,可以通过编码或者工具模拟的方式完成。

编码:python(unittest+urllib2);Java(junit4+httpclient)

工具模拟:jMeter、soupUI、postman等

2.请求的验证:除了验证接口的返回值外,还要关注负载均衡(请求是否分发到多点应用)

3.监控:通过工具 SpringCloud Sleuth、 Turbine、Prometheus进行监控

4.日志:通过ELK( ElasticStack )来集中化管理日志

重点:

微服务架构下,既需要保障各服务内部每个模块的完整性,又需要关注模块间、服务间的交互。

难点

1.关联性:微服务通常情况下会与多个微服务进行交互。当某服务发生变化时,会直接影响到依赖的其他服务。

2.可靠性:为了尽可能降低微服务间通信对网络情况的高度依赖,降低因网络不稳定引起的故障率,设计微服务架构时会设计隔离机制。

3.数据一致性:微服务是基于分布式系统设计的,这就需要考虑分布式系统数据一致性的问题。

原创不易,如果文章帮到了你,欢迎转发和点赞,让更多的朋友受益!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,776评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,527评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,361评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,430评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,511评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,544评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,561评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,315评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,763评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,070评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,235评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,911评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,554评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,173评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,424评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,106评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,103评论 2 352