内容简介:集成测试(Integration Test) : 将所有模块按照设计要求组装成为子系统或系统,进行集成测试。在微服務的架構下,我們可以使用集成測試來保證在整个微服务调用链中,从本服务开始,到所有被调用的微服务之间,业务逻辑是正确的。举个例子,我们有三个微服务,一个是Gateway, 一个是ServiceA, 一个是ServiceB,它们的调用关系如下图。 现在要上线的是ServiceA,我们需要保证的是从ServiceA开始,到ServiceB的调用都是正常的。在此处即ServiceA调用ServiceB
集成测试(Integration Test)
集成测试(Integration Test) : 将所有模块按照设计要求组装成为子系统或系统,进行集成测试。
在微服務的架構下,我們可以使用集成測試來保證在整个微服务调用链中,从本服务开始,到所有被调用的微服务之间,业务逻辑是正确的。
测试方案
举个例子,我们有三个微服务,一个是Gateway, 一个是ServiceA, 一个是ServiceB,它们的调用关系如下图。 现在要上线的是ServiceA,我们需要保证的是从ServiceA开始,到ServiceB的调用都是正常的。在此处即ServiceA调用ServiceB是正常的。
针对集成测试可以使用 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 | 负责订单信息的维护 |
具体的调用时序图如下:
现在我们要部署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/
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 微服务架构下的测试之(二)-单元测试
- 『互联网架构』软件架构-rocketmq之性能测试(63)
- 开发转测试七年,我从测试策略到测试架构(Test architecture)
- 搭建数据驱动测试框架构
- SELENIUM 的自动化测试架构
- 性能测试流程5步走:BS架构和CS架构性能指标大对比
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Approximation Algorithms
Vijay V. Vazirani / Springer / 2001-07-02 / USD 54.95
'This book covers the dominant theoretical approaches to the approximate solution of hard combinatorial optimization and enumeration problems. It contains elegant combinatorial theory, useful and inte......一起来看看 《Approximation Algorithms》 这本书的介绍吧!