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

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

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

问题

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

测试方案

  • 单元测试(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


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

查看所有标签

猜你喜欢:

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

零售的哲学:7-Eleven便利店创始人自述

零售的哲学:7-Eleven便利店创始人自述

[日] 铃木敏文 / 顾晓琳 / 江苏文艺出版社 / 2014-12-1 / 36

全球最大的便利店连锁公司创始人——铃木敏文,结合40多年零售经验,为你讲述击中消费心理的零售哲学。铃木敏文的很多创新,现在已经成为商界常识,本书把那些不可思议的零售创新娓娓道来。关于零售的一切:选址、订货、销售、物流、管理……他一次又一次地在一片反对声中创造出零售界的新纪录。 翻开本书,看铃木敏文如何领导7-11冲破层层阻碍,成为世界第一的零售哲学。一起来看看 《零售的哲学:7-Eleven便利店创始人自述》 这本书的介绍吧!

SHA 加密
SHA 加密

SHA 加密工具

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具