【问题标题】:Staging backend for e2e frontend testing [closed]e2e前端测试的暂存后端[关闭]
【发布时间】:2018-09-03 13:26:06
【问题描述】:
我们在前端使用 angular,在后端使用 Node.js。
我们正在前端编写 e2e 测试,据我了解,它应该使用真正的后端。所以我们有暂存环境,Angular 应用程序 e2e 测试在那里使用真正的 Node.js 暂存后端。 Staging 后端使用 staging 数据库和 staging 日志环境。
问题:
- 是否可以使用真实的登台后端进行 e2e 前端测试?
- 如何进行重置密码测试,我们需要在后端生成JWT,然后发送到电子邮件?我应该为某些特殊的测试用户硬编码一些令牌吗?
- 在没有真正后端的情况下进行 e2e 测试会怎样?很奇怪吗?
谢谢!
【问题讨论】:
标签:
node.js
angular
testing
protractor
e2e-testing
【解决方案1】:
是否可以使用真实的登台后端进行 e2e 前端测试?
最好设置没有任何其他用途的测试网络服务器和数据库,以避免交叉污染。否则测试可能会破坏真实环境,而真实环境可能会影响测试结果。出于这个原因,在容器中运行测试环境是一种很好的做法。
如何进行重置密码测试,我们需要在后端生成 JWT,然后发送到电子邮件?我应该为某些特殊的测试用户硬编码一些令牌吗?
硬编码令牌可能会起作用,但它会阻止测试此功能。为了更彻底地测试它,可以在测试环境中模拟邮件服务器或使用它的库(例如nodemailer)。
在没有真正后端的情况下进行 e2e 测试怎么样?很奇怪吗?
这使它们成为集成测试,它们是测试应用程序的有效方法。理论上,前端和后端集成测试可以提供全面覆盖。但是它们之间的不一致可能会导致在所有测试都通过时应用程序出现故障。除了集成测试之外,最小的 E2E 测试覆盖率可能仍然是有益的。视情况而定,可能仅限于只读操作,使用真实的网络服务器。
【解决方案2】:
您应该使用暂存的真实后端来测试您的前端是否可以与您的后端一起使用。您的测试用户应该是普通用户。您可以随心所欲地进行免费测试,就测试密码重置而言,具体取决于您进行 e2e 测试。您可以这样做,您可以让测试等待接收电子邮件并点击链接进行重置等等,这取决于您是否对部署到生产环境的应用感到满意,但此功能可能会损坏