可靠性测试
概述
可靠性指的是软件系统在规定的时间内以及规定的环境条件下,完成规定功能的能力。Phoenix 是一个消息驱动的有状态微服务框架,其可靠性我们重点关心以下几个能力:
- 处理可靠性:使用案例发起一笔同步调用,如果调用成功,必定能查询到调用处理的结果。
- 重启可靠性: Phoenix 为了保证内存状态,会在重启后做 EventSourcing,需要测试重启后,EventSourcing 是否正常。
- 投递可靠性: Phoenix 可以保障所有到达 Kafka 的消息可靠的消费,并且可以保证后续每一个 Actor 的最少一次投递,并且 Phoenix 内置消息幂等可以保障消息可靠处理。
下面分别对上述维度的可靠性进行测试。
处理可靠性测试
测试场景
Phoenix 框架处理可靠性基于 bank-account 服务进行。我们通过模拟一笔转账指令,观察系统处理结果后的前端页面,证明 Phoenix 可以正确处理请求。
校验方法
观察 account-server 服务的前端页面,最终的处理结果无误则证明 Phoenix 具有处理可靠性。
测试步骤
-
使用 bank-account 服务,在前端发起一笔转账。[account_1] 给账户 [account_2] 转账 100 元等待请求返回。
-
请求返回结果为转账成功后,刷新前端页面数据,查看所有账户的资金数据。
-
由查询结果可知,账户 [account_1] 的最终金额为 900 元,账户 [account_2] 的最终金额为 1100 元(每个账户默认有 1000 元的初始资金)。Phoenix 正确处理了前端请求,具有处理可靠性。
重启可靠性测试
测试场景
Phoenix 框架重启可靠性基于 bank-account 示例应用进行。通过模拟应用处理完毕批量请求后,进行服务重启。证明重启完毕后,应用数据能恢复到重启前的状态。