E2E应该在生产中运行吗?

问题描述 投票:0回答:2

如果这是开放式的,我们深表歉意。

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

专业阶段测试

  • 不会破坏生产分析数据。
  • 可以在投入生产之前检测故障。

专业生产测试

  • 将使用系统的实际组件,包括数据库和其他配置,并可能捕获产品配置的问题。

我有时不确定我们是否将端到端与监控服务混为一谈(如果存在这样的事情)。有人对此事有意见吗?

另外E2E测试什么时候进行?由于系统的每个成员都在接受测试,因此似乎没有测试套件的所有者,因此很难确定何时应该运行 E2E。我们希望在投入生产之前能够在某种管道中运行 E2E。这是否意味着我应该在前端/后端发生变化时运行这些测试?或者您愿意只按一定时间间隔运行 E2E,而不考虑任何变化?

testing integration-testing cypress e2e-testing e2e
2个回答
4
投票

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

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

测试服务器 - 用于计划运行,因为 - 无论您编写测试有多擅长,在某些时候它们将连续运行多个小时,并且您需要随着时间的推移对它们进行可靠的统计,并使用不会破坏生产的虚假数据服务器。

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

在生产环境中运行 - 我见过很多情况,当测试结果出现在官方网站的奇怪状态时,会导致公司声誉下降。其他危险有:

  1. 破坏你的数据库
  2. 向不存在的用户进行购买并开始赔钱
  3. 对官网api造成不必要的压力,导致客户端运行时体验不佳,甚至导致服务器完全停止。

所以,我们团队里有专门的生产现场手动测试员。


1
投票

根据您的部门/环境/项目的设置方式,您可能无法掌握所有最佳选项,但理想情况下您不想想要在生产中进行测试。

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

何时测试运行将取决于一些事情。

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

您还可以安排测试定期运行,但这通常表明测试花费的时间太长。努力创建快速测试,以便在某个时候与 CI 工具集成敞开大门。并行化会有所帮助,但您最大的收获将来自使用

cy.request()
快速完成登录等重复任务,以及使用
cy.intercept()
存根响应而不是等待服务。

© www.soinside.com 2019 - 2024. All rights reserved.