如何访问由 Cypress 测试触发的电子邮件内容

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

我的情况是在 API 和 UI 测试期间发送电子邮件(1.重置密码时,2.添加新成员)。 如何在不实际登录邮件手册并访问内容的情况下访问这些电子邮件,以便将它们添加到测试和验证中?

测试如下。

  1. 用户可以重置密码。
  2. 邮件被触发。
  3. 用户使用邮件中的链接重置密码。
  4. 用户使用新密码再次登录。

第二次测试。

  1. 管理员添加了一名成员。
  2. 管理员添加了新成员并收到一封有关确认的邮件。
  3. 验证发送到新会员邮箱的邮件。

非常感谢这里的任何帮助。

我试图调查第三方,但似乎我需要使用他们的电子邮件帐户,我希望有人可以帮助我处理 Gmail(访问发送到 Gmail 的电子邮件的内容)

javascript automation automated-tests cypress cypress-custom-commands
4个回答
3
投票
  1. 如果您的应用程序在本地运行并且直接通过 SMTP 服务器发送电子邮件,您可以使用在 Cypress 内部运行的临时本地测试 SMTP 服务器。阅读博客文章 “使用 Cypress 测试 HTML 电子邮件” 了解详细信息。
  2. 如果您的应用程序使用第三方电子邮件服务,或者您无法存根 SMTP 请求,则可以使用具有 API 访问权限的测试电子邮件收件箱。请阅读博客文章 “使用 SendGrid 和 Ethereal 帐户对 HTML 电子邮件进行全面测试” 了解详细信息。

取自官方最佳实践页面“验证已发送的电子邮件”。阅读更多这里


1
投票

如果您正在寻找免费的第三方电子邮件客户端(当然每月只有 100 封电子邮件),您可以使用 testmail.app

这个应用程序非常基本,并且易于与

cypress
集成。 您可以在此处

找到文档

1
投票

要检查您的应用程序在赛普拉斯 E2E 测试中是否正确发送了电子邮件,您可以使用TestSendr等外部服务。

此(免费)服务将允许您向以 @testsendr.link 结尾的邮件发送电子邮件,然后通过简单的 REST API 检查收到的电子邮件。检查快速启动


0
投票

有各种第三方解决方案提供您可以通过 API 访问的真实电子邮件地址。它们附带了 Cypress 插件,可以帮助您解决这种情况。请参阅此处:https://docs.cypress.io/plugins#email

有些还提供 SMTP 服务器,这在临时或开发环境中非常有用,因此所有电子邮件都会被捕获在其中,并且您不会发送外部电子邮件。

我们公司使用 Mailosaur 来测试您提到的两种场景,即帐户创建过程中的密码重置和电子邮件验证,但当然您也可以使用此处提到的其他场景。

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