在我们的应用程序中,我们通过 selenium 进行了很多功能测试。
我们知道,让运行测试的服务器与生产服务器尽可能相似是一种很好的做法,我们会尽可能地遵循它。
但这很难 100% 实现,因此我们为我们的服务器设置了一个不同的设置文件,以便在暂存环境中进行一些更改(例如,由于需要额外的架构,我们选择关闭电子邮件发送)。
事实上,许多服务器框架都建议使用隔离的前端控制器(环境)进行测试,以轻松实现这种小的更改。
默认情况下,像我们这样的大多数框架都建议他们的测试环境应该关闭缓存。为什么?
如果我们想尽可能地模拟生产,那么在执行功能测试时关闭服务器缓存可能有什么好处?可能存在只有在缓存开启时才能发现的错误,并且开启缓存也可能有助于加速我们的测试执行!
我们不是只需要确保在开始新一批功能测试之前清除缓存,就像我们在将新版本部署到生产时清除缓存一样吗?
我的一位同事建议,造成这种情况的原因可能是缓存会产生误报,这些错误不是由实施不当的功能(这是这些测试的主要目标)引起的,而是缓存系统本身......但即使这些真的发生了(我想这取决于缓存的使用方式有多先进),为什么它们会是误报?