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

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

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

冒烟測試(Smoke Test)

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

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

测试方案

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

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

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

项目代码

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

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

具体的调用时序图如下:

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

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

项目controller层代码如下:

项目service层代码如下:

测试代码

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

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/


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

查看所有标签

猜你喜欢:

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

Software Design 中文版 01

Software Design 中文版 01

[日] 技术评论社 / 人民邮电出版社 / 2014-3 / 39.00

《Software Design》是日本主流的计算机技术读物,旨在帮助程序员更实时、深入地了解前沿技术,扩大视野,提升技能。内容涵盖多平台软件开发技巧、云技术应用、大数据分析、网络通信技术、深度互联时代下的移动开发、虚拟化、人工智能等最前沿实践性讲解。以人脑思维模式,激发计算机操控的无限可能;以软件开发技巧,挖掘系统与硬件的最大价值。 《Software Design 中文版 01》的主题为......一起来看看 《Software Design 中文版 01》 这本书的介绍吧!

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

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

Markdown 在线编辑器

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

RGB CMYK 互转工具