微服务架构下的测试之(一)-解决方案

栏目: 服务器 · 发布时间: 7年前

内容简介:在微服务的架构下,所有的业务被分拆成了一个个独立的个体,分别部署在集群的容器中,互相之间的调用形成了一个网状拓扑结构。这对之前的传统测试来说就是一种灾难。那基于微服务架构下的测试应该怎么做呢,下面介绍一个最佳实践。这几个测试分别对不同的阶段起作用,可以从下面这两张图来看具体每个测试所针对的作用域。

问题

在微服务的架构下,所有的业务被分拆成了一个个独立的个体,分别部署在集群的容器中,互相之间的调用形成了一个网状拓扑结构。这对之前的传统测试来说就是一种灾难。那基于微服务架构下的测试应该怎么做呢,下面介绍一个最佳实践。

测试方案

  • 单元测试(Unit Test): 是指对软件中的最小可测试单元进行检查和验证。
  • 冒烟测试(Smoke Test): 这一术语源自硬件行业。对一个硬件或硬件组件进行更改或修复后,直接给设备加电。如果没有冒烟,则该组件就通过了测试。在软件中,冒烟测试设计用于确认代码中的更改会按预期运行,且不会破坏整个版本的稳定性。
  • 集成测试(Integration Test): 将所有模块按照设计要求组装成为子系统或系统,进行集成测试。
  • 行为驱动开发(Behavior Driven Development): 行为驱动开发是一种敏捷软件开发的技术,它鼓励软件项目中的开发者、QA和非技术人员或商业参与者之间的协作。

这几个测试分别对不同的阶段起作用,可以从下面这两张图来看具体每个测试所针对的作用域。

微服务架构下的测试之(一)-解决方案

微服务架构下的测试之(一)-解决方案

通过上面两张图我们可以很清楚的看到:

单元测试要保证的是每个方法的正确性,即我们修改任意代码逻辑,只要单元测试可以通过,就可以保证我们的逻辑书写或修改是正确的,但前提是我们在践行敏捷开发中的TDD,即先写测试,然后开发。

冒烟测试要保证的就是单个应用的正确性,即在不依赖其他服务的情况下,当前服务是可以正常启动并且逻辑正确的。

集成测试要保证的是在整个微服务调用链中,从本服务开始,到所有被调用的微服务之间,业务逻辑是正确的。

行为驱动开发要保证的是从根微服务开始,甚至是从UI页面开始,整个业务逻辑的调用都是正确的,前提是我们在践行BDD,即先写测试,然后开发,或者测试和开发同时由不同的人进行。

测试技术

以下只针对 Java 的技术来说,不同的测试我们可以采用如下的技术来实现。

单元测试 Mockito
冒烟测试 MockMvc
集成测试 RestAssured
BDD Cucumber

參考資料

单元测试 : https://baike.baidu.com/item/%E5%8D%95%E5%85%83%E6%B5%8B%E8%AF%95

冒烟测试 : https://baike.baidu.com/item/%E5%86%92%E7%83%9F%E6%B5%8B%E8%AF%95/2166486?fr=aladdin

集成测试 : https://baike.baidu.com/item/%E9%9B%86%E6%88%90%E6%B5%8B%E8%AF%95/1924552?fr=aladdin

BDD : https://baike.baidu.com/item/BDD/10735732?fr=aladdin


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

见微知著-WEB用户体验解构

见微知著-WEB用户体验解构

李清 / 机械工业出版社 / 2010-4 / 36.00元

本书用解构分析的方法,系统全面地介绍了Web页面设计的相关知识和要素。 本书从整体到局部地对网站的元素进行解构,包括网站整体布局、整体配色方案,到网站各个功能区域,如登录区、内容区、广告区等,最后到按钮、反馈、验证码、字体、文字语气等多个细节元素。本书通过解构这些元素来讲述如何对用户体验设计进行优化,如何进行搜索引擎优化。 本书适用于网站交互设计师、视觉设计师、产品经理、网站设计人员、......一起来看看 《见微知著-WEB用户体验解构》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试