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

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

内容简介:集成测试(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/


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

查看所有标签

猜你喜欢:

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

微信营销与运营

微信营销与运营

王易 / 机械工业出版社 / 2014-1-1 / CNY 49.00

这是一本深度介绍微信营销的书,也是一本系统讲解微信公众账号运营的书,它基于微信的最新版本,从策略、方法、技巧与实践等多角度详细解析了微信的营销与运营,所有内容都是行业经验的结晶,旨在为企业运用微信提供有价值的参考。 本书首先从商业模式角度全面分析了微信5.0推出的“扫一扫”、表情商店、微信游戏、微信支付等新功能背后的商业机会,以及订阅号折叠给企业带来的影响和应对策略;其次从运营角度系统归纳了......一起来看看 《微信营销与运营》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

URL 编码/解码
URL 编码/解码

URL 编码/解码

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换