微服务架构下的测试之(四)-集成测试(Integration Test)

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

内容简介:集成测试(Integration Test) : 将所有模块按照设计要求组装成为子系统或系统,进行集成测试。在微服務的架構下,我們可以使用集成測試來保證在整个微服务调用链中,从本服务开始,到所有被调用的微服务之间,业务逻辑是正确的。举个例子,我们有三个微服务,一个是Gateway, 一个是ServiceA, 一个是ServiceB,它们的调用关系如下图。 现在要上线的是ServiceA,我们需要保证的是从ServiceA开始,到ServiceB的调用都是正常的。在此处即ServiceA调用ServiceB

集成测试(Integration Test)

集成测试(Integration Test) : 将所有模块按照设计要求组装成为子系统或系统,进行集成测试。

在微服務的架構下,我們可以使用集成測試來保證在整个微服务调用链中,从本服务开始,到所有被调用的微服务之间,业务逻辑是正确的。

测试方案

举个例子,我们有三个微服务,一个是Gateway, 一个是ServiceA, 一个是ServiceB,它们的调用关系如下图。 现在要上线的是ServiceA,我们需要保证的是从ServiceA开始,到ServiceB的调用都是正常的。在此处即ServiceA调用ServiceB是正常的。

微服务架构下的测试之(四)-集成测试(Integration Test)

针对集成测试可以使用 RestAssured 来实现。

这个方案乍看起来是没什么问题的,但仔细推敲就会发现,RestAssured是对已部署的rest接口进行测试,但是真正在项目mvn test阶段项目还没有部署。就会陷入一个鸡下蛋,蛋生鸡的问题。项目还没部署,无法测试,未测试通过,项目不能部署。解决方案是通过Maven的插件,修改微服务上线的流程为如下:

mvn clean install // skip the IT tests at this phase
//deploy service...
mvn test // execute the IT tests

项目代码

依旧拿之前在SmoketTest中的例子,有一个下单的流程,我们有4个微服务,分别是ms-gateway, ms-service, ms-product, ms-order. 其中

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

具体的调用时序图如下:

微服务架构下的测试之(四)-集成测试(Integration Test)

现在我们要部署ms-service项目,并且相对其进行集成测试。那我们要保证的就是ms-service, ms-product, ms-order之间的正常调用。

ms-sercice项目controller层代码如下:

测试代码

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

pom.xml

<dependency>
  <groupId>com.jayway.restassured</groupId>
  <artifactId>rest-assured</artifactId>
  <version>2.9.0</version>
</dependency>

ITServiceTest.java

完整代码

请参照 GITHUB ms-service

參考資料

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

RestAssured : http://rest-assured.io/


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

查看所有标签

猜你喜欢:

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

爱上Arduino

爱上Arduino

Massimo Banzi / 于欣龙、郭浩赟 / 人民邮电出版社 / 2012-10 / 38.00元

《硬件开源电子设计平台:爱上Arduino(第2版)》全面透彻地介绍了arduino的相关内容,它会给你带来许多项目的点子,并帮助你顺利地实现从开始策划直到完成安装的全过程。由于《硬件开源电子设计平台:爱上Arduino(第2版)》是arduino项目合作创始人massimobanzi所著,其中一定融入了创始人对开源硬件的独到见解。《硬件开源电子设计平台:爱上Arduino(第2版)》内容完全考虑......一起来看看 《爱上Arduino》 这本书的介绍吧!

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

RGB HEX 互转工具

html转js在线工具
html转js在线工具

html转js在线工具

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

RGB CMYK 互转工具