金丝雀测试

Canary测试是最小的测试,可以快速,自动地验证您所依赖的一切是否就绪。 您在其他耗时的测试之前运行Canary测试,并且在其他测试为红色时浪费您的时间调查代码。 如果Canary测试失败,您就必须先在环境中修复某些问题。

Canary测试的想法不同于Canary部署。 在Canary Deployment中,您可以部署到一小部分用户,以检查一切是否正常,然后再推广到更多用户。
20140120-2358251

通过检查什么总是可以的来节省时间

Canary测试会检查问题的明显和常见来源,例如:

  • 与网络的连接 :防火墙规则正常,端口打开,代理工作正常,NAT,可ping阈值以下
  • 数据库和中间件启动
  • 日志的磁盘配额几乎未满
  • 每个所需的登录名密码均有效
  • 正确版本中提供的已安装软件 :已安装dll,已设置注册表,已设置环境变量,用户目录均已存在,框架和操作系统版本合适,时区和语言环境符合预期
  • 可以参考数据的完整性和一致性(日期,评估…)
  • 数据库模式和所应用脚本的审核符合预期
  • 许可证未过期 (通常有一种自动检查许可证的方法)

Canary测试应定期运行,最好在端到端测试之类的昂贵测试之前进行。 当然,您希望在任何地方遇到问题时都可以运行它们,然后在预期的环境无法完全使用时,浪费时间进行代码中的手动调查。

即使在代码级别,canary测试也只是微不足道的测试,它可以验证测试框架是否正常工作,正如Marcus在他的博客中提到的那样:

assertTrue(true)

不要忘记验证您的测试也会失败!

简单且低维护

金丝雀测试工具在应用程序中不应承担太多责任。 它们必须独立于新的发展,以便尽可能稳定。 他们应该几乎不需要维护。

在实践中,这样做的一种方法是简单地扫描每个URL,密码的配置文件,然后按照预定义的时间阈值对它们进行ping操作。 可以扫描配置文件中提到的任何日志路径,并检查所需的写权限和可用磁盘空间。 即使可能更复杂,也可以检查任何登录名和密码。

金丝雀测试也是文档

进行Canary测试可能需要明确的期望声明,例如注释AssumedPermission('777'),以声明对配置文件中引用的文件所需的权限。 或者,您可以依靠约定高于配置原则。 例如每个

log.*.path

假定变量为日志路径,以检查一些预定义的期望,例如可写和磁盘配额是否正常。

添加金丝雀测试时,这种自动化本身就是一种使假设更加明确的文档形式。

您可以导出已经以易于阅读的形式进行的每个金丝雀测试的报告,这些报告可以成为您的生活文档的一部分。

参考: Cyrille Martraire博客博客上的JCG合作伙伴 Cyrille Martraire的Canary Tests

翻译自: https://www.javacodegeeks.com/2014/02/canary-tests.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值