快捷搜索:  汽车  科技

微服务自动化测试,微服务测试系列

微服务自动化测试,微服务测试系列金丝雀部署:在金丝雀部署中把一个新的发布部署到生产环境的一个子集中,考察其表现,逐步提高新版本服务的覆盖率直到完全覆盖。若出现问题可以将新服务回滚。生产环境测试细分:合约测试:测试微服务API的有效性或是否遵守既定约定。合约测试也叫“消费者驱动合约测试”,由API的消费者服务编写,消费者将这份约定编码到测试套件中,每次对API的变更都会运行。通过这种方式,若对API的变更破坏了其中一个消费者所期望的约定,这种破坏性变更会在CD流水线的早期阶段中捕获。端到端测试:上面的测试套件适用于隔离地测试单个服务,端到端测试的粒度更大,对整个系统的功能进行测试。传统测试策略有其局限性,有一系列的故障难以在测试环境中模拟,如:高度分布式系统中的最终一致性问题,硬件及网络故障导致的系统内局部故障。需要在传统测试技术的基础上补充一些能有效地配置、监控生产环境系统的技术,以及系统确实出现异常时恢复生产环境的能力

一个微服务架构涉及到很多移动组件,一个有效的测试策略既要确保单个微服务在隔离环境中经过测试,也要确保整个系统的行为经过验证。测试通常分为两种类型:预生产环境测试、生产环境测试及监控。

预生产环境测试

单元测试:用于覆盖软件中最小可测功能。

集成测试:测试一个微服务中各模块的集成及接口缺陷。

组件测试:一个组件是指一个能提供某些特定功能的服务。故微服务的组件测试可以视作服务验收测试,需要验证服务是否提供了既定的功能。

合约测试:测试微服务API的有效性或是否遵守既定约定。合约测试也叫“消费者驱动合约测试”,由API的消费者服务编写,消费者将这份约定编码到测试套件中,每次对API的变更都会运行。通过这种方式,若对API的变更破坏了其中一个消费者所期望的约定,这种破坏性变更会在CD流水线的早期阶段中捕获。

端到端测试:上面的测试套件适用于隔离地测试单个服务,端到端测试的粒度更大,对整个系统的功能进行测试。

生产环境测试及监控

传统测试策略有其局限性,有一系列的故障难以在测试环境中模拟,如:高度分布式系统中的最终一致性问题,硬件及网络故障导致的系统内局部故障。需要在传统测试技术的基础上补充一些能有效地配置、监控生产环境系统的技术,以及系统确实出现异常时恢复生产环境的能力。有一种叫“故障注入”的生产环境测试会在生产环境中可控地引入故障用以考察你的系统可靠。

生产环境测试细分:

金丝雀部署:在金丝雀部署中把一个新的发布部署到生产环境的一个子集中,考察其表现,逐步提高新版本服务的覆盖率直到完全覆盖。若出现问题可以将新服务回滚。

微服务自动化测试,微服务测试系列(1)

蓝绿部署:发布了新服务,对其进行一些测试并将一些流量路由到新服务。若一切正常,将所有流量都切换到新的服务实例,否则就保留旧服务。

微服务自动化测试,微服务测试系列(2)

多变量测试:也叫“多变量测试”,并非为了测出新服务中的缺陷,而是利用开关对新发布的特性进行AB测试,目的就是为了了解新特性的市场反应。可以视情况将其发布到所有用户的手中,或在必要时对其进行修复。

猜您喜欢: