You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Cypress中自动化获取测试触发的Gmail邮件内容?

Gmail 自动化获取邮件内容方案(适配测试场景)

前置准备

  • 启用 Gmail 的 IMAP 访问:在 Gmail 设置中开启 IMAP 功能;若账号开启了两步验证,需生成App 密码替代普通登录密码
  • 安装必要工具:以 Python 为例,可使用内置的 imaplib 和 email 库,无需额外安装第三方包

测试场景一:密码重置流程集成

  1. 通过 API 或 UI 操作触发用户密码重置请求
  2. 自动获取重置密码邮件并提取链接
    import imaplib
    import email
    from email.header import decode_header
    
    def extract_reset_link(gmail_user, gmail_pass):
        # 连接 Gmail IMAP 服务器
        imap = imaplib.IMAP4_SSL("imap.gmail.com")
        imap.login(gmail_user, gmail_pass)
        imap.select("INBOX")
    
        # 搜索未读的重置密码邮件(按主题筛选,可根据实际邮件主题调整)
        status, msg_ids = imap.search(None, 'UNSEEN', 'SUBJECT "密码重置请求"')
        latest_msg_id = msg_ids[0].split()[-1]
    
        # 获取邮件原始内容并解析
        status, msg_data = imap.fetch(latest_msg_id, "(RFC822)")
        msg = email.message_from_bytes(msg_data[0][1])
    
        # 提取纯文本正文
        body = ""
        if msg.is_multipart():
            for part in msg.walk():
                if part.get_content_type() == "text/plain":
                    body = part.get_payload(decode=True).decode()
                    break
        else:
            body = msg.get_payload(decode=True).decode()
    
        # 提取重置链接(根据实际链接格式调整匹配规则)
        reset_link = [line.strip() for line in body.split("\n") if "/reset-password?" in line][0]
        
        imap.close()
        imap.logout()
        return reset_link
    
  3. 使用提取到的重置链接完成密码重置操作
  4. 验证新密码登录成功

测试场景二:添加成员邮件验证

管理员确认邮件验证

  • 复用上述 IMAP 连接逻辑,筛选主题为"成员添加确认"的未读邮件
  • 解析邮件正文,验证其中的新成员邮箱、角色等信息是否与测试输入一致

新成员邮件验证

  • 使用提前准备的测试用新成员 Gmail 账号,通过 IMAP 获取激活/欢迎邮件
  • 验证邮件中的激活链接、初始账号提示等内容符合预期

关键注意事项

  • 仅使用专门的测试邮箱账号执行自动化操作,避免干扰个人邮箱数据
  • 邮件筛选条件(如主题、未读状态)需根据实际业务发送的邮件内容调整
  • 若邮件内容为 HTML 格式,可改用 text/html 类型提取正文,再通过正则匹配目标内容

内容的提问来源于stack exchange,提问作者ruffainn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 05:18:20