Testing E2E应该在生产中运行吗

Testing E2E应该在生产中运行吗,testing,integration-testing,cypress,e2e-testing,e2e,Testing,Integration Testing,Cypress,E2e Testing,E2e,道歉,如果这是开放式的 目前,我和我的团队正在制定端到端(E2E)测试策略,我们似乎不确定是否应该针对我们的暂存站点或生产站点执行E2E测试。我们认为两者都有利弊 专业分期测试 不会破坏生产上的分析数据 能够在投入生产前检测到故障 专业生产测试 将使用系统的实际组件,包括数据库和其他配置,并可能捕获产品配置的问题 我有时不确定我们是否将E2E与监控服务混为一谈(如果存在这种情况)。有人对这件事有意见吗 此外,E2E测试何时运行?由于系统的每个成员都在测试中,因此似乎没有测试套件的所有者,

道歉,如果这是开放式的

目前,我和我的团队正在制定端到端(E2E)测试策略,我们似乎不确定是否应该针对我们的暂存站点或生产站点执行E2E测试。我们认为两者都有利弊

专业分期测试

  • 不会破坏生产上的分析数据
  • 能够在投入生产前检测到故障
专业生产测试

  • 将使用系统的实际组件,包括数据库和其他配置,并可能捕获产品配置的问题
我有时不确定我们是否将E2E与监控服务混为一谈(如果存在这种情况)。有人对这件事有意见吗


此外,E2E测试何时运行?由于系统的每个成员都在测试中,因此似乎没有测试套件的所有者,因此很难确定何时应该运行E2E。我们希望在投入生产之前,我们可以在某种管道中运行E2E。这是否意味着我应该在前端/后端更改时运行这些测试?或者,您是否愿意在不考虑任何更改的情况下以一定的时间间隔运行E2E?

根据您的部门/环境/项目的设置方式,您可能没有所有的最佳选项可供选择,但理想情况下,您不希望在生产中进行测试

我想说的是,人们的普遍愿望是尽可能多地使用虚假数据,并对其进行策划,以涵盖真实世界的场景。如果您的产品配置和设置与您的测试环境不同,请努力确保您的测试环境配置与产品尽可能匹配。如果您使用的是CI工具,这将更容易实现,但无论您的设置如何,都需要遵守规则

测试何时运行取决于一些因素

  • 如果您已经使您的网站和依赖项变得微不足道,并且您已经在使用持续集成工作流,那么您可能能够在拉请求评估期间进行代码构建和启动测试。这就是理想
  • 如果您有一个缓慢的构建/部署过程,您可能希望保持一个永久的测试环境运行。然后,您可以在每次部署到测试环境后启动测试,或者临时运行测试

您还可以计划定期运行测试,但这通常表明测试花费的时间太长。努力创建快速测试,以便在某个时候打开与CI工具集成的大门。并行化将有所帮助,但您最大的收获将来自使用
cy.request()
完成重复性任务,如登录和使用
cy.intercept()
以存根响应代替等待服务。

在我的团队经验中,测试自动化最好定期在专用测试服务器中完成,新代码只有在连续成功测试了几个会话后才能部署

本地测试运行用于测试自动化开发和调试

测试服务器-用于计划运行,因为-无论您在编写测试方面有多么出色,在某个时候,它们将连续运行好几个小时,并且您需要使用不会破坏生产服务器的假数据对它们进行可靠的统计

我不同意@MetaWhirledPeas只追求快速测试运行的观点。你的首要任务应该是更好的覆盖和减少片状。您总是可以通过并行化来减少运行时间

在生产中运行-我见过很多情况,当测试结果在官方网站的一个有趣的状态,使公司的声誉下降。其他危险包括:

  • 破坏数据库
  • 从不存在的用户那里购买,然后开始赔钱
  • 在官方站点api上造成不必要的压力,使客户端在运行期间的体验变差,甚至导致服务器完全停止
  • 因此,在我们的团队中,我们为生产现场配备了专用的手动测试仪