【问题标题】:How can I acess content of email triggered by a test in Cypress如何访问赛普拉斯测试触发的电子邮件内容
【发布时间】:2022-08-18 15:56:24
【问题描述】:

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

测试类似于以下内容。

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

    第二次测试。

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

      将不胜感激这里的任何帮助。

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

  • 有一些第三方插件可以让赛普拉斯处理电子邮件。 docs.cypress.io/plugins/directory#Email
  • 谢谢,但似乎大多数都是有偿的,我希望是否有其他方法可以做到这一点或免费的第三方?
  • 找到一个将电子邮件转储到文件夹/文件的电子邮件服务器(例如,smtp-dump 并让您的测试在那里查找/读取文件。

标签: javascript automation automated-tests cypress cypress-custom-commands


【解决方案1】:

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

这个应用程序非常基本且易于与cypress 集成。 你可以找到文档here

【讨论】:

  • 谢谢看看,100封电子邮件就足够开始了
【解决方案2】:
  1. 如果您的应用程序在本地运行并且直接通过 SMTP 服务器发送电子邮件,您可以使用在赛普拉斯内部运行的临时本地测试 SMTP 服务器。阅读博文"Testing HTML Emails using Cypress" 了解详情。
  2. 如果您的应用程序正在使用第 3 方电子邮件服务,或者您无法存根 SMTP 请求,则可以使用具有 API 访问权限的测试电子邮件收件箱。阅读博文"Full Testing of HTML Emails using SendGrid and Ethereal Accounts" 了解详情。

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

【讨论】:

  • 以上是否适用于Gmail,因为我是第一次这样做。
  • @ruffainn 我不确定你是如何运行测试的。你能提供更多的上下文吗?您能否在测试期间将电子邮件发送到不同的收件箱或服务?
  • 我们在测试服务器上运行测试,某些操作会触发电子邮件和与用户关联的电子邮件。在这种情况下,用户拥有 Gmail,因此邮件将发送到 Gmail。我需要访问并验证该邮件的内容。
猜你喜欢
  • 2019-07-28
  • 2019-02-19
  • 2023-02-14
  • 2023-01-29
  • 2022-12-10
  • 2019-12-22
  • 1970-01-01
  • 2020-10-28
  • 1970-01-01
相关资源
最近更新 更多