|
|
51CTO旗下网站
|
|
移动端

推荐4个实用的微服务测试策略

微服务架构并不是一种新的架构模式,但它的不断发展为那些寻求企业级私有云解决方案的公司,带来了诸多好处,将大型一体化架构应用拆分为可组合的微服务,赋予企业独立扩展和维护每个组件的能力以及DevOps能力。

作者:Jason Limon来源:DockOne|2018-09-17 14:34

微服务架构并不是一种新的架构模式,但它的不断发展为那些寻求企业级私有云解决方案的公司,带来了诸多好处,将大型一体化架构应用拆分为可组合的微服务,赋予企业独立扩展和维护每个组件的能力以及DevOps能力。

当然,微服务架构的分布式和独立性也带了许多挑战,而本文讲谈谈如何克服测试多个可独立部署组件时可能会遇到的挑战。

单元测试(Unit Testing)

单元测试的范围可以是一组服务(社会性单元测试),也可以是单独的一个服务(独立单元测试)。被测试的单元粒度越小,就越容易确定模块的行为、查明相关collaborators以及对象与依赖之间的交互。由于单元的复杂度较低,QA工程师可以通过单元测试策略来评估单元是否与collaborators隔离。社会性单元测试和独立单元测试经常会在同一个代码库中同时进行,以解决不同的测试问题。

测试domain layer的目的是模拟DML语句并证明所有collaborators都以正确的顺序使用真实的domain objects。在单元测试期间,工程师可以验证用于生成map responses的逻辑或来自外部远程依赖项的其他请求。就资源和服务层而言,验证每个组件是否与collaborators正确交互,将可以可重复且一致的方式监视请求/响应周期。

集成测试(Integration Testing)

集成测试在分段环境中进行,以在分析通信路径的功能和它们之间的交互之后集成各个服务。与单片或SOA不同,微服务架构依赖于进程间通信(IPC)机制来正常运行,这就是为什么必须验证服务之间的交互。

我们需要编写自动化测试,以通过与外部服务和数据存储的集成来映射成功或错误的情况。运行网关集成测试将在协议级别上破坏接口错误,例如不正确的SSL处理和丢失的HTTP标头。持久性集成测试确保每个组件和协议客户端必须在超时和部分失败的情况下作为外部依赖进行响应。

契约测试(Contract Testing)

契约测试是一种用于验证外部服务调用与其API Provider endpoint之间契约的黑盒子。一般有两种契约测试:

  • 集成契约测试
  • 消费者驱动(consumer-driven)契约测试

在集成契约测试中,每个组件都需要独立调用,并且必须满足消费服务(consumer)预期的契约协议。解决这个问题的***方法是对double进行测试。另一方面,定期运行一组单独的测试以确认测试double没有变化至关重要。不过,一单出现测试失败,会降低部署管道的速度并破坏IT基础架构或分布式系统的功能。处理间歇性测试失败的***方法之一是更新测试double,同时可能也需要更新代码,以便可以使其恢复到与外部服务一致的状态。

在消费者驱动的契约测试中,消费者将描述他们想要使用服务的方式。消费者契约可以在生产者和消费者之间以相互同意的语言和模式进行。服务提供商将针对各个契约的副本测试服务,然后对该特定服务进行更改,而不会影响其他服务的性质。

End-to-End测试(End-to-End Testing)

End-to-End(E2E)测试用于确定整个系统正常运行以及网络基础设施(负载平衡器、防火墙等)已正确配置。End-to-End测试需要以最精细的粒度运行以测试整个系统的功能。在此,QA工程师验证完全集成过程的行为,并确保系统总体上满足其业务需求,而不管使用的服务组件体系结构如何。在功能测试的帮助下,开发人员可以确定集成系统或应用是否按要求的规定运行。

【编辑推荐】

  1. 强强联手,GCC 编译器吸纳 OpenRISC 作为架构端口
  2. 如何设计一个麻雀般的微型分布式架构?
  3. 模块化量子计算架构关键组件开发成功
  4. Redis 作者被迫修改 master-slave 架构的描述
  5. 甲骨文***推出的 Java 微服务框架 Helidon:轻量简单
【责任编辑:张燕妮 TEL:(010)68476606】

点赞 0
分享:
大家都在看
猜你喜欢

订阅专栏+更多

16招轻松掌握PPT技巧

16招轻松掌握PPT技巧

GET职场加薪技能
共16章 | 晒书包

289人订阅学习

20个局域网建设改造案例

20个局域网建设改造案例

网络搭建技巧
共20章 | 捷哥CCIE

645人订阅学习

WOT2019全球人工智能技术峰会

WOT2019全球人工智能技术峰会

通用技术、应用领域、企业赋能三大章节,13大技术专场,60+国内外一线人工智能精英大咖站台,分享人工智能的平台工具、算法模型、语音视觉等技术主题,助力人工智能落地。
共50章 | WOT峰会

0人订阅学习

读 书 +更多

Ajax经典案例开发大全

针对Ajax技术的日益流行,本书对Ajax技术的典型应用进行了归纳总结,基本上覆盖了Ajax技术应用的典型场景。书中共有45个实例,分为9章:动...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊

51CTO服务号

51CTO播客