• 0
  • 0
分享

      微服务字面上理解一个是微,另一个是服务,用大白话描述就是每个模块负责很小的功能范围视为微,而服务则是通过API的形式向其他模块提供服务

      在早期的单体架构中,整个网站都运行在一套服务器集群上,共享计算机所有计算和存储资源,这种架构的优势在于当应对小规模的用户的时候,功能实现相对比较容易,可以快速开发,并且依赖较少,但这种架构没有处理高并发的能力,没有处理大数据量的能力,除非不计成本的整体做负载均衡

      到了微服务时代,每个服务都用一个或多个服务实例来承载,对外通过API的方式提供给其他调用者,对内通过服务网关提供统一接口,每个服务通过服务注册将自己注册在服务列表中,并通过服务配置中心来配置服务,在这个架构中每个服务都有自己的进程和数据库,因此在某个服务性能不足的时候便可以单独扩容,从描述中不难看出这种架构的优点,除了灵活高可用外,系统版本发布升级等都有很大的灵活度

      在微服务架构设计过程中,服务边界的划分是个关键,理论上可以无限细分服务边界,然每个微服务做足够小的事情,然而这并不是很合理,服务边界的划分需要掌握一个平衡点,太多的微服务会导致一个操作的调用链太长,对排查问题造成很大的麻烦,并且系统的延迟也会变得更大,在单体系统中通过内存通信,相对时间可以忽略不计,但在微服务中,大量使用RESTful或RPC,会导致通信产生的开销过大

测试平台微服务化

      微服务架构有着非常多的优点,然而并不是适用于任何场景,合适的场景用合适的框架在是正确的选择,例如公司的产品很单一,测试规模便不会很大,并且团队成员有限,那么单体架构的优势反而更大,反之产品复杂多样,测试平台的扩展性和配置能力就会有比较高的要求,以此类推,选择适合的

服务边界划分

  • 测试资源服务:主要用于测试资源的保存、修改及调用,并且能够通过给定的参数进行资源查找

  • 测试配置服务:静态配置、动态配置及带逻辑功能的配置,如果将静态配置和动态配置的读取和保存都统一起来,那么便可以将这两者归并为一类,服务可以通过配置的名称来提供配置的新增、修改和保存;带有逻辑功能的配置则可以单独开辟一个微服务来提供

  • 测试报告服务:保存和读取测试用例执行的测试报告

  • 测试日志服务:保存和读取测试用例执行的测试日志

  • 测试用例管理服务:负责管理测试用例,通过扫描测试用例来维护测试用例信息并提供查询

  • 测试用例执行服务:给定测试用例或测试列表,执行相应的测试用例

      最终,这些服务将自己的接口注册在服务网关上,提供外部调用者访问,一般是API Gateway,这样便可以通过服务网关来调用各个微服务提供的接口,并配置相应的服务,从使用者的层面来说,并不会感知微服务的存在,所有的配置都会通过服务网关分发到相应的微服务中,例如测试工程师对测试资源进行了配置,然后将其保存,这个时候可能会调用一个RESTful API将测试资源的信息作为body传递给服务网关,服务网关就会将这个API分发到测试资源微服务中,测试资源微服务对其进行处理后,返回执行结果

      微服务之间也可以相互调用,除非人为的设定了界限,例如不允许某些服务之间调用,否则在测试执行的过程中,会调用测试资源微服务,获取测试资源,同样的也会调用测试配置服务,将结果和日志写入测试报告

222.png


作者:Davieyang.D.Y

原文链接:https://davieyang.blog.csdn.net/article/details/107873854

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 1、软件测试的目的是发现软件中存在的错误,提高软件质量,降低软件项目的风险。2、软件测试只能证明软件存在错误,而不能证明软件没有错误。测试的目的只是把软件的错误控制在一个可以进行产品交付/发布的程度上,可以交付/发布产品并不是没有错误的产品。3、软件测试不可能无休止的进行下去。随着测试时间的延伸,发现错误的成本会越来越大,这就需要测试有度,而这个度并不能由项目计划实际判断,而是要根据测试发现错误的概率来判断。4、第三方测试指独立于软件公司自身测试的测试,所谓第三方是指在软件公司和软件用户之间的一方,是一个中介的服务机构,第三方测试除了发现软件问题之外,还要对软件进行科学、公正的评价的职能。5、...
            12 14 5372
            分享
          •   摘要:当前国内企业的数字化转型正如火如荼的进行着,而随着各类软件应用在性能、功能、安全性等重要维度的要求越来越高,业界也对软件测试行业提出了新的挑战。  以兼容测试为例,传统的兼容测试因整体的测试管理较为陈旧,导致了测试流程规范性弱、测试工作效率低、人力成本高等种种问题,从而阻碍了测试需求单位的数字化转型步伐,还会因软件应用质量的问题给企业带来软件体验不佳、用户数量下降、行业排名下滑等严重后果。  Testin云测试专注于软件测试行业十数年,拥有丰富的测试行业经验,在业界率先把最新的AI技术广泛运用于兼容测试,为广大客户打造出数字化时代的一站式兼容测试服务,引领智能测试时代的技术风向。  ...
            0 0 1353
            分享
          • 前言今年是笔者本科毕业的第6年,在接近三十而立的年龄里,回首自己从毕业到现在的职业生涯,可以说是一波三折。趁着自己现在有时间,就做一个复盘和总结,分享给曾经和我一样迷茫的朋友,希望能够带给你一些启发。一、考研失利,“捡到”一个国企的offer笔者是某末流211大学电子信息工程专业科班出身的,大四那年有些不知道“天高地厚”地拒绝了本校保研,准备跨考复旦大学的金融专业研究生,结果当然是华丽丽地当了一回“分母”。话说那时候考研还不是很卷,如果我坚持考自己专业,应该也是可以上岸一所不错的学校的,但是造化弄人.......于是乎,完美地错过了当时的秋招,只能急匆匆地追赶春招的步伐。地球人都知道春招无论是...
            11 11 1029
            分享
          • 1. 游戏测试主要内容1. 功能测试功能测试是游戏测试中最常见的模式,主要测试方法为黑盒测试功能测试主要用来验证功能是否符合需求设计功能测试主要考虑正确性,而不考虑游戏底层结构及代码错误功能测试通常从界面着手开始测试,尽量模拟用户可能出现的操作。从需求的角度来发现功能中的一些缺陷,并反馈2. 客户端的性能测试客户端CPU使用率客户端内存占用率客户端网络流量使用情况客户端耗电量客户端贞率(FPS)ios常用工具:xcode自带的instrument安卓常用工具emmage和GT3. 服务端的压力测试服务器cpu使用率服务器内存占用率系统吞吐量(TPS)事务响应时间事务成功率通常会写机器人模拟大量...
            0 0 1929
            分享
          •   目前大部分mysql和elasticsearch同步机制使用的插件实现的,常用的插件包为:logstash-input-jdbc,go-mysql-elasticsearch, elasticsearch-jdbc、canal。  插件优缺点对比  1. logstash-input-jdbc  logstash官方插件,集成在logstash中,下载logstash即可,通过配置文件实现mysql与elasticsearch数据同步  优点  ·能实现mysql数据全量和增量的数据同步,且能实现定时同步。  ·版本更新迭代快,相对稳定。  ·作为ES固有插件logstash一部分,易用。...
            3 3 1441
            分享
      • 51testing软件测试圈微信