随着敏捷开发成为新的常规,频繁交付改进的服务改变了业务流程模型。问题是为什么?那么,简单的答案是客户通过及时提供优质的产品或服务来获取和保留客户,以满足客户快速发展的需求。下一个问题是,这会损害质量吗?简短的回答是”性能测试”。同样,为什么在可以延迟生成发布时投资测试?嗯,这不是一个大的权衡,因为测试是质量的支柱,没有它,敏捷的整个目的就会崩溃。这就是引入更智能测试工具和技术的原因。金丝雀测试的性能测试现在越来越有牵引力。

今天,用户在应用程序中提供如此多的种类,即使网站加载时间和响应时间延迟 5 秒,甚至超过 8 秒也会导致重大损失。 例如,在 2013 年,只有 5 分钟的 Google 停机时间使公司损失近 545,000 美元。 同样,在 2016 年 1 月,软件更新导致 Nest 恒温器停止工作,让许多用户感到冷淡,他们后来在社交媒体上大谈这个问题。 此外,不久前,Amazon Web 服务中断导致公司的销售损失为 1100 美元/秒。

让我们来看看金丝雀测试,它的意义,好处和缺点,所以我们可以证明它的意义。

 

什么是金丝雀测试?

金丝雀测试、金丝雀释放和金丝雀部署是用于一种技术的术语,该技术可实现连续交付,同时保持最低风险。 该过程是将软件更新推出到选定的用户组进行测试。 这种方法的名字来自过去在煤矿中用作有毒气体探测器的金丝雀鸟。 金丝雀对有毒气体比人类更敏感,因此,它们会立即生病或在低暴露水平下死亡。 这有助于矿工们撤离矿井,在为时已晚之前逃离危险。

 

推出策略

同样,在金丝雀测试中,金丝雀是一小群体验最新软件更新的用户,他们的反馈可帮助开发团队决定是否应向所有用户提供新版本,或者更改应快速回滚。 金丝雀测试是并行更改的应用程序,在单独的生产环境中完成,只有几个选定的用户路由到该环境中,而大多数用户保留在旧的生产环境中。 此用户迁移将持续到所有用户已转移到新版本。 这是一种渐进式方法,支持创新,并降低大规模中断的风险。

 

回滚策略

如果新版本被证明是极其错误的,对用户体验构成巨大威胁,而不是扭转生产环境的变化;用户被重定向到稳定的旧版本。 同时,开发团队致力于错误修复。

 

谁是选定的用户?

下一个问题是谁是受软件更新影响的用户? 那么,有不同的方法来决定金丝雀用户,如:

  • 他们可以是内部或远程分发的测试团队
  • 从特定区域,在地理分布的用户的情况下
  • 单一品牌第一,在多个品牌的情况下

 

可引用的金丝雀测试的最佳应用是 Facebook。 Facebook 使用”多金丝雀”策略。 只有内部员工才能首先接触到新更改,同时打开所有功能切换以尽早检测问题。

 

金丝雀测试的好处是什么?

除非你有别的事情可以比较,否则你无法衡量某样东西的好处。 所以,是的,金丝雀测试经常与 A/B 测试和蓝绿色测试混淆。 然而,这是两个世界中最好的。 让我们看看原因。

 

A/B 测试

通过实现,A/B 测试类似于金丝雀测试。50% 的用户提供了具有新功能”B”的应用程序的升级版本。其余 50% 的用户继续使用基线功能”A”。然后监视功能发布结果,以根据预期观察结果。但是,A/B 的重点是查看功能对客户有多有用。而金丝雀测试进行风险缓解。

 

蓝绿色部署

蓝绿色部署的重点是消除最终用户的停机时间和中断。 在测试完成后,将在空闲生产环境中进行更改,所有用户都从旧生产中迁移到该环境中。 但是,在金丝雀测试中,受影响的用户数量一开始保持在最低水平。

我们可以得出结论,金丝雀测试是两个世界中最好的,即 A/B 测试和蓝绿色部署。 金丝雀部署方法的好处可归结为:

  • 它有助于创新,加快敏捷开发,并允许轻松推出新功能。
  • 它确保零停机时间。
  • 它允许在出现负面结果时快速回滚更改。
  • 它允许对条件进行高级别配置,以确定在将流量发送到新版本之前,将流量发送到整个用户群。
  • 它允许多个团队同时测试生产中的单个微服务。
  • 与蓝绿色部署不同,不需要资源扩展来测试其他环境。 因为每个微服务资源策略都采用来进行测试。
  • 新版本的行为可以通过缓慢增加生产负荷来监控,而不是设置一个全新的容量测试环境。
  • 它允许在生产环境中部署多个版本。 这为团队提供了测试新版本所需的自由度、灵活性和速度。

 

金丝雀部署和负载视图

您可以在不影响大众用户体验的情况下实现性能测试的最佳结果。 您所需要的只是金丝雀部署的实践和支持性能测试指标的优秀测试工具。 使用金丝雀方法,性能测试用例的执行可以在像 LoadView 这样的高级解决方案的帮助下 实现自动化。 这听起来可能令人困惑和复杂。 但是,让我们尝试了解它与一个例子的帮助。 例如,单页应用程序(SPA)Netflix 开发了新功能,并发布给金丝雀用户(7,50,000,即 1500 万用户的 5%;根据 2020 年的统计数据)。

现在,没有一个 DevOps 团队可以手动监控如此大量的用户。 因此,LoadView 就像一根魔杖,因为它使 DevOps 和测试团队能够启动成百上千的并发用户,以针对他们的应用程序进行加载和压力测试,并查看其应用程序在该应用负载下的性能。

此外,LoadView 及其 EveryStep Web 记录器脚本工具 的一个引人注目的选择是,它支持负载测试 SCA。 SPA 逻辑依赖于 JavaScript 技术,许多工具不支持该技术,例如 JMeter。 JMeter 仅在协议级别工作,而不能使用浏览器,因此很多客户端性能都未从性能测试结果中删除。 使用 EveryStep 录像机,创建用户方案和路径非常简单,并且使用真正的浏览器。 只需记录路径并设置测试方案。 真的那么容易。

 

金丝雀部署/测试的挑战

每枚硬币都有两面。 有些人会说,金丝雀部署/测试方法有其缺点,但更恰当地说以下几点是它的挑战。

  • DevOps 团队必须并行管理软件的多个版本。 因此,建议将并发版本的数量降至最低。
  • 如果解决方案软件安装在用户设备上,升级新版本时,您无法完全控制新版本。
  • 在金丝雀发布期间,数据库管理变得困难。
  • 金丝雀测试的实施需要作出巨大努力,以有效和有力地监测基础设施和应用。
  • 监视每个增量版本需要时间,并可能会影响目标发布日期。 金丝雀测试可能需要几个小时。

 

结论:金丝雀测试

总之,可以推断出,金丝雀部署/测试方法可能是您下一个在风险缓解方面最好的朋友,当涉及到对软件的新版本进行性能测试时,实际用户没有任何停机时间。 正如Ian Molyneaux在他的著作《应用性能测试的艺术:从策略到

, 工具》中所说,”如果最终用户从您的网站上察觉到性能不佳,她的下一次点击your-competition.com。不要让这种情况发生。 确保您的客户和客户获得出色的用户体验。

现在使用 LoadView 开始负载测试体验