其他分享
首页 > 其他分享> > 《微服务架构设计模式》读书笔记 | 第10章 微服务架构中的测试策略(下)

《微服务架构设计模式》读书笔记 | 第10章 微服务架构中的测试策略(下)

作者:互联网

目录


前言

本章介绍集成测试、组件测试与端到端测试;

这是一本关于微服务架构设计方面的书,这是本人阅读的学习笔记。以下对一些符号做些说明:

()为补充,一般是书本里的内容;
[]符号为笔者笔注;


1. 编写集成测试

集成测试验证服务是否可以与其客户端和依赖关系进行通信;

测试金字塔-集成测试

1.1 服务通常与其他服务交互

服务通常与其他服务交互
测试服务间的交互方法

1.2 集成测试的策略

第二种:使用契约

集成测试的两种策略

1.3 针对持久化层的集成测试

在这里插入图片描述

持久化层的集成测试示例
持久化集成测试每个阶段的行为:

1.4 针对基于REST的请求 / 响应式交互的集成测试

使用Spring Cloud Contract来测试基于REST的交互
图解

一个REST API契约示例

针对Order Service的消费者驱动的契约集成测试

针对API Gateway的OrderServiceProxy的消费者端集成测试

1.5 针对发布 / 订阅式交互的集成测试

![使用Spring Cloud Contract来测试基于领域事件的交互
图解

在这里插入图片描述
针对发布OrderCreated事件的契约

在这里插入图片描述
针对Order Service的消费者驱动的契约测试

在这里插入图片描述

针对Order History Service的消费端契约测试

1.6 针对异步请求 / 响应式交互的集成契约测试

使用Spring Cloud Contract来测试基于命令式消息的交互
图解

在这里插入图片描述
异步请求 / 响应的契约示例

在这里插入图片描述
针对异步请求 / 响应式交互的消费者端契约集成测试

编写针对异步请求 / 响应式交互的、服务提供者端的消费者驱动契约测试


2. 编写组件测试

服务组件测试模式:单独测试服务;
组件测试单独验证服务的行为,使用模拟其行为的桩代替服务的依赖关系;

测试金字塔-组件测试

2.1 定义验收测试

2.2 使用Gherkin编写验收测试

使用Java编写验收测试具有挑战性,更好的方法是消除手动转换步骤并编写可执行的场景;
Gherkin用于编写可执行规范的DSL;使用Gherkin可以使用类似英语场景定义验收测试,然后使用Cucumber执行规范;

2.2.1 使用Gherkin定义验收测试

使用Gherkin定义验收测试
图解

2.2.2 使用Cucumber执行规范

使用Cucumber执行规范
图解

2.3 设计组件测试

为了避免为多个服务配置桩,设置数据库和消息传递基础设施;

2.4 为FTGO的Order Service编写组件测试

Order Service的组件测试,使用进程外策略来测试作为Docker容器运行的服务;

2.4.1 Order Service的组件测试设计

Order Service的组件测试设计
图解

2.4.2 OrderServiceComponentTestStepDefinitions类

usingCreditCard()方法

placeOrder()方法

在这里插入图片描述
theOrderShouldBe()方法

verifyEventPublished()方法

2.4.3 运行组件测试

使用Gradle Docker Compose插件进行测试
图解


3. 端到端测试

端到端测试位于测试金字塔顶端,会测试整个应用程序;

测试金字塔-端到端测试

3.1 设计端到端测试

3.2 编写端到端测试

基于Gherkin的用户旅程规范

图解

3.3 运行端到端测试


4. 本章小结



最后

新人制作,如有错误,欢迎指出,感激不尽!
欢迎关注公众号,会分享一些更日常的东西!
如需转载,请标注出处!

标签:架构设计,服务,10,读书笔记,验证,测试,契约,组件,Order
来源: https://www.cnblogs.com/dlhjw/p/15348167.html