微服务测试与监控全解析
1. 跨功能测试概述
在测试微服务系统时,除了对特定功能进行测试外,跨功能需求(CFR)测试也至关重要。传统的“非功能需求”这一术语不太贴切,同事Sarah Taraporewalla提出的“跨功能需求”更能体现这些系统行为是大量交叉工作的结果。
许多CFR只有在生产环境中才能真正满足,但我们可以定义测试策略来评估是否朝着满足这些目标前进,这类测试属于属性测试范畴,性能测试就是典型例子。
对于一些CFR,可在单个服务层面进行跟踪。例如,支付服务需要更高的服务持久性,而音乐推荐服务可接受更多停机时间,因为核心业务在短时间内无法推荐类似Metallica的艺术家也能存活。这种权衡会影响系统的设计和演进,微服务系统的细粒度特性为我们提供了更多权衡机会。
CFR测试应遵循金字塔原则,有些测试需端到端进行,如负载测试;有些则不需要。例如,在端到端负载测试中发现性能瓶颈后,编写小范围测试以在未来捕获问题。还有些CFR很适合快速测试,如检查HTML标记是否使用了适当的无障碍功能,无需网络往返即可快速完成。
需要注意的是,对CFR的考虑往往为时过晚,建议尽早关注并定期审查。
2. 性能测试的重要性与实施
性能测试是确保部分跨功能需求得以满足的重要手段。将系统分解为更小的微服务时,网络边界的调用次数增加,可能导致系统运行速度下降,因此追踪延迟源尤为重要。
性能测试可采用多种方式,可选择隔离单个服务的测试,也可从检查系统核心流程的测试开始,还可对端到端流程测试进行大规模运行。为生成有价值的结果,通常需逐步增加模拟客户数量来运行给定场景,以观察调用延迟随负载增加的变化情况。
超级会员免费看
订阅专栏 解锁全文
44

被折叠的 条评论
为什么被折叠?



