首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何测试涉及电子邮件确认的用户流?

如何测试涉及电子邮件确认的用户流?
EN

Stack Overflow用户
提问于 2019-07-09 19:29:41
回答 3查看 1.8K关注 0票数 2

我指的是功能测试或E2E测试。对于通用流程来说,这一切都很清楚,但当涉及到事务电子邮件(注册确认、密码重置、购买通知和其他)时,它仍然会带来问题。经过一番研究,我想出了几个点子。一种是利用Cypress API (这里以Selenium WebDriver和Restmail.net -http://dsheiko.com/weblog/testing-sign-up-flow-with-activation-by-email为例)。它是免费的,但API是公开的。因此,它并不真正适合包含潜在敏感信息的电子邮件。通过IMAP桥或Gmail API访问Gmail收件箱的另一种方法(这里有解释和代码片段- https://docs.puppetry.app/testing-emails/example-with-imap-bridge)。但同样,这也是一种变通方法。

我知道有像Sendgrid,Mailgun,Email Yak,Postmark这样的人。我不想花那么多钱。那么你们是怎么做到的呢?这对你来说是件事吗?

EN

回答 3

Stack Overflow用户

发布于 2019-07-10 03:08:36

我们使用Mailosaur电子邮件地址为我们的测试用户做这件事。然后,我们使用cypress自定义命令来query Mailosaur for the expected email。它的设置非常简单。

以下是自定义命令的主要部分,这是我们在开始进行电子邮件测试时必须添加的全部内容。您可以参考他们的API文档,了解querymailosaurServerMailosaurApiKey应该是什么。

代码语言:javascript
运行
复制
Cypress.Commands.add("getEmailFromMailService", query => {
  return cy
    .request({
      method: "POST",
      url: `https://mailosaur.com/api/messages/await?server=${mailosaurServer}`,
      body: query,
      headers: { "Content-Type": "application/json" },
      auth: { user: mailosaurApiKey },
    })
    .then(response => {
      expect(response.status).to.equal(200);
      return response.body;
    });
});
票数 4
EN

Stack Overflow用户

发布于 2019-07-09 19:57:24

您可以为“忘记密码”创建post请求,然后对其进行断言。

类似于:

代码语言:javascript
运行
复制
    cy.visit('yoursite')
    cy.get('#forgotpassword').click().then(function (xhr) {
    cy.server()
    cy.request('POST', 'APIforForgotPassword').as('sucessfullemail)
    })
    cy.get(@sucessfullemail).then(function (xhr) {
    expect(xhr.status).to.eq(200)
票数 0
EN

Stack Overflow用户

发布于 2019-07-19 16:56:22

代码语言:javascript
运行
复制
Cypress.Commands.add('ConfirmUser', () => {
  const confirmationToken = null;
  cy.request({
    url: 'http://localhost:3000/api/confirmation_token?email=test_user@cypress.com',
    followRedirect: false
  })
    .then((resp) => {
      confirmationToken = resp.token
    })
  cy.visit('/en/confirmation?confirmation_token=token')
})

创建需要将电子邮件作为参数并返回确认令牌的API。从cypress命令中调用API作为ajax-request并获取响应令牌

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56951573

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档