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

栏目: 后端 · 发布时间: 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/


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

查看所有标签

猜你喜欢:

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

理解专业程序员

理解专业程序员

(美)杰拉尔德·温伯格(GeraldM.Weinberg) / 刘天北 / 清华大学出版社 / 2006-7 / 25.00元

《理解专业程序员》通过行内专家的独特视角,介绍了如何成为优秀程序员,如何提高工作绩效等问题。全书由多篇讨论程序员职业的短文组成,内容精彩绝伦,是一部任何在这个变化急剧的领域工作的人都不可错过的重要作品。本书论述生动翔实——你肯定能从中认出你自己和你的公司的故事——因此不仅极富教益,而且读来也引人入胜。 各篇主题包括:对于专业程序员重要的若干问题,成为专业程序员的途径,在企业官僚体......一起来看看 《理解专业程序员》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具