使用 xk6-disruptor 注入故障
xk6-disruptor 是一个扩展,为 k6 添加了故障注入能力。它实现了混沌工程学科的原理,用于在延迟和响应错误等动荡条件下测试应用的可靠性。
主要功能包括
- 一切即代码。无需学习新的 DSL,促进团队之间的测试复用和协作。
- 快速采用,没有第二天惊喜。无需部署和维护大量代理或 Operator。
- 易于扩展并与其他类型的 k6 测试集成。无需尝试将多个工具粘合在一起即可完成工作。
能力
目前,disruptor 旨在测试在 Kubernetes 中运行的应用。此时不支持其他平台。
它提供了一个 Javascript API,用于将不同的故障(例如错误和延迟)注入到所选的 Kubernetes Pod 或 Service 的 HTTP 和 gRPC 请求中。
未来将引入其他类型的故障和 disruptor。路线图展示了该项目在未来几个月内在新功能和增强功能方面的目标。
用例
disruptor 通过在服务处理的请求中引入错误来测试分布式应用的弹性。
disruptor 不试图重现根本原因,例如应用实例故障或计算或网络资源降级。它侧重于重现此类故障的副作用,以便您可以专注于理解内部服务和公共服务之间的错误传播,并改进应用中的错误处理。
通过这种方式,disruptor 使可靠性测试具有可重复性和可预测性,同时限制了其影响范围。这对于测试部署在预生产和测试环境等共享基础设施中的应用至关重要。
常见用例如下
- 测试弹性策略,例如指数退避、超时、重试等。
- 测试内部故障发生时的回退功能。
- 在常见的内部故障下测试 SLO。
- 测试应用在经历延迟时的性能。
- 向现有性能测试添加故障注入。
了解更多
详细了解故障注入和在开发周期早期构建弹性。
查看第一步,开始使用 disruptor。
按照在不同场景中注入故障的示例进行操作。
访问 Killercoda 中的交互式演示环境,在演示应用中尝试 disruptor,无需进行任何设置。
贡献
对于任何意外行为,请先搜索 GitHub issue。
如果您有兴趣为该项目做出贡献,请查阅贡献指南。