微服务架构下的测试之(三)-冒烟測試

栏目: 后端 · 发布时间: 7年前

内容简介:冒烟測試(Smoke Test) : 这一术语源自硬件行业。对一个硬件或硬件组件进行更改或修复后,直接给设备加电。如果没有冒烟,则该组件就通过了测试。在软件中,冒烟测试设计用于确认代码中的更改会按预期运行,且不会破坏整个版本的稳定性。在微服務的架構下,我們可以使用冒烟測試來保證单个微服务在不依赖其他服务(其他服务在此处包含其他微服务或者其他的中间件)的前提下,其本身是正常运行的。举个例子,我们有三个微服务,一个是Gateway, 一个是ServiceA, 一个是ServiceB,它们的调用关系如下图。 现

冒烟測試(Smoke Test)

冒烟測試(Smoke Test) : 这一术语源自硬件行业。对一个硬件或硬件组件进行更改或修复后,直接给设备加电。如果没有冒烟,则该组件就通过了测试。在软件中,冒烟测试设计用于确认代码中的更改会按预期运行,且不会破坏整个版本的稳定性。

在微服務的架構下,我們可以使用冒烟測試來保證单个微服务在不依赖其他服务(其他服务在此处包含其他微服务或者其他的中间件)的前提下,其本身是正常运行的。

测试方案

举个例子,我们有三个微服务,一个是Gateway, 一个是ServiceA, 一个是ServiceB,它们的调用关系如下图。 现在要上线的是ServiceA,我们需要保证的是在不依赖ServiceB的情况下,ServiceA可以正常启动,部署和运行。

微服务架构下的测试之(三)-冒烟測試

针对冒烟测试可以搭配使用 MockMvc 和 WireMock 来实现。

项目代码

举个例子,有一个下单的流程,我们有4个微服务,分别是ms-gateway, ms-service, ms-product, ms-order. 其中

ms-gateway 负责gateway功能,所有微服务在一个子网,保证只有gateway可以与外网交互
ms-service 负责业务逻辑的处理
ms-product 负责产品信息的维护和库存的维护
ms-order 负责订单信息的维护

具体的调用时序图如下:

微服务架构下的测试之(三)-冒烟測試

现在我们要部署ms-service项目,并且相对其进行冒烟测试。

项目controller层代码如下:

项目service层代码如下:

测试代码

那么我们就可以使用 MockMVC 和 WireMock 对这个项目进行测试,如下

pom.xml

<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-test</artifactId>
	<scope>test</scope>
</dependency>
<dependency>
	<groupId>com.github.tomakehurst</groupId>
	<artifactId>wiremock</artifactId>
	<version>2.1.12</version>
	<scope>test</scope>
</dependency>

ProductControllerSmokeTest.java

完整代码

请参照 GITHUB ms-service

參考資料

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

MockMvc : https://docs.spring.io/spring/docs/current/spring-framework-reference/testing.html

WireMock : http://wiremock.org/


以上所述就是小编给大家介绍的《微服务架构下的测试之(三)-冒烟測試》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

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

Learning Python, 5th Edition

Learning Python, 5th Edition

Mark Lutz / O'Reilly Media / 2013-7-6 / USD 64.99

If you want to write efficient, high-quality code that's easily integrated with other languages and tools, this hands-on book will help you be productive with Python quickly. Learning Python, Fifth Ed......一起来看看 《Learning Python, 5th Edition》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

随机密码生成器
随机密码生成器

多种字符组合密码

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具