We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Failpoint 是 FreeBSD failpoints 的 Golang 实现,允许在代码中注入错误或异常行为, 并由环境变量或代码动态激活来触发这些异常行为。对于一个大型复杂的系统来说,通常包含多个模块或多个组件构成,模拟各个子系统的故障是测试中必不可少的环节, 并且这些故障模拟必须做到无侵入地集成到自动化测试系统中,通过在自动化测试中自动激活这些 failpoint 来模拟故障,并观测最终结果否符合预期结果来判断系统的正确性和稳定性。 etcd 团队在 2016 年实现了 gofail 极大地简化了错误注入,为 Golang 生态做出了巨大贡献。 如果在一个分布式系统中需要专门请一位同事来插拔网线来模拟网络异常,一个存储系统中需要通过破坏硬盘来模拟磁盘损坏,昂贵的测试成本会让测试成为一场灾难, 并且难以模拟一些需要精细化控制的的测试。Failpoint 能用于各种复杂系统中模拟错误处理来提高系统的容错性、正确性和稳定性,比如:
本次主要分享 failpoint 设计与实现,以及如何将 failpoint 应用到项目中来提高程序的健壮性。
failpoint
预备知识
讨论的朋友可以进 Slack channel
2019 年 5 月 16 日 21 点
The text was updated successfully, but these errors were encountered:
No branches or pull requests
Failpoint 介绍
Failpoint 是 FreeBSD failpoints 的 Golang 实现,允许在代码中注入错误或异常行为, 并由环境变量或代码动态激活来触发这些异常行为。对于一个大型复杂的系统来说,通常包含多个模块或多个组件构成,模拟各个子系统的故障是测试中必不可少的环节, 并且这些故障模拟必须做到无侵入地集成到自动化测试系统中,通过在自动化测试中自动激活这些 failpoint 来模拟故障,并观测最终结果否符合预期结果来判断系统的正确性和稳定性。 etcd 团队在 2016 年实现了 gofail 极大地简化了错误注入,为 Golang 生态做出了巨大贡献。
如果在一个分布式系统中需要专门请一位同事来插拔网线来模拟网络异常,一个存储系统中需要通过破坏硬盘来模拟磁盘损坏,昂贵的测试成本会让测试成为一场灾难, 并且难以模拟一些需要精细化控制的的测试。Failpoint 能用于各种复杂系统中模拟错误处理来提高系统的容错性、正确性和稳定性,比如:
本次主要分享
failpoint
设计与实现,以及如何将 failpoint 应用到项目中来提高程序的健壮性。预备知识
参考资料
讨论
讨论的朋友可以进 Slack channel
分享时间
2019 年 5 月 16 日 21 点
The text was updated successfully, but these errors were encountered: