把成功拆成三个结果
公共 Wi-Fi 门户的邮件测试,不能停在“验证码已收到”。收件箱出现邮件、门户接受验证码或链接、原设备获得联网权限,是三个独立结果。第一项通过,后两项仍可能因令牌过期、会话丢失或网关策略失败。
先与开发、运营约定验收口径:邮件在哪个时间窗口内可见,验证成功由哪个服务事件确认,放行后访问哪个受控 HTTPS 测试页。不要仅凭门户出现“成功”字样判断已经联网;该页面可能来自缓存,而网关尚未更新授权。
为每轮测试隔离地址与会话
在测试环境或获得授权的网络进行操作。每个独立用例使用新地址,记录用例编号与设备会话;只有重发、重复点击等连续性用例,才沿用原地址。不要使用真实住客邮箱、房号、订单或身份证件填充测试数据。
打开Tmpkey 临时收件台后,确认显示的是实际地址与倒计时,而不是两封演示信。保留同一浏览器的收件凭证;换浏览器不会自动得到原箱。若门户未放行导致收件页打不开,先准备可用的移动数据连接,参照放行前如何打开匿名收件箱区分网络阻断与投递问题。
先建矩阵,再增加组合
用一条正常路径建立基线,再逐项改变变量。设备系统与版本、浏览器类型、网络是否已放行、验证方式都要写明;不要在一次失败后同时换地址、换设备、换浏览器,否则无法定位差异。
| 用例 | 设备与浏览器 | 网络与验证方式 | 重点验收 |
|---|---|---|---|
| 正常收码 | 手机完整浏览器 | 门户待放行;手动输入码 | 可收信,原会话通过并放行 |
| 系统小窗 | 系统 Wi-Fi 登录窗口 | 待放行;邮件链接 | 跳出小窗后不会丢失绑定 |
| 异机收信 | 电脑登录;手机收信 | 两条网络;链接与验证码分别测 | 按声明的设备绑定策略处理 |
| 连续重发 | 同设备、同浏览器会话 | 同地址;连续请求 | 新旧码规则、乱序与限流一致 |
| 令牌过期 | 保留原会话 | 邮箱仍有效;门户令牌过期 | 拒绝旧令牌并提供重新申请入口 |
| 地址过期 | 完整浏览器 | 邮箱已过期;重新请求发码 | 识别收件地址失效,不误判渲染错误 |
在这组基线上补充目标客群常用的 iOS、Android 与桌面版本。隐私浏览、禁用存储、语言切换可作为扩展项;实际支持范围应由产品约定,不必盲目遍历所有组合。
给到达时间留下三个时间点
记录 T0:点击发码;T1:门户服务接受请求;T2:收件台首次可见邮件。T1−T0 包含前端与请求处理,T2−T1 包含排队、传输和收件展示,不能把两者统称为“邮件服务器慢”。接口返回成功也不等于已经送达。
客户端与服务器统一时区并校准时钟,优先用请求标识关联日志。收件台轮询会让首次可见时间晚于真实入站时间,T2 应注明是“界面观察值”;有权限时再用投递日志核对入站时刻,不用邮件 Date 字段代替接收时间。
重复多轮,分别记录中位数、慢样本与失败比例。阈值依据门户承诺和验证码寿命制定,不给所有网络套一个固定秒数。
检查正文,不只确认六个数字
主题应说明当前用途,发件地址应来自预期域名;显示名称相同不代表来源相同。SPF、DKIM、DMARC 的判断需要完整邮件头或投递日志,不能只看一个发件人徽标。
- HTML:关闭远程图片后,验证码、有效期和安全提示仍可读;窄屏不横向溢出,深浅模式有足够对比。
- 纯文本:代码与链接完整,没有残留标签;换行不截断代码,复制时不夹入不可见字符。
- 内容一致:两种正文的操作目的、代码和期限相同,翻译版本不混入另一语言的说明。
临时收件台可以帮助观察显示,但不一定提供原始 MIME 或双正文切换。需要确认两种内容都已发送时,检查自有发送日志、原始邮件或受控测试客户端,不以“页面看起来正常”推断纯文本部分存在。
沿着验证链接走到原会话
检查实际目标地址,而不只是按钮文案。链接应使用预期 HTTPS 域名,重定向不能落入未授权站点,参数不能携带不必要的身份信息。使用合成测试账号验证整条跳转链,日志只保留脱敏后的路径与状态。
同机与异机,分别验收
在系统登录小窗发起、完整浏览器收信时,链接可能进入另一个 Cookie 会话;在手机上打开电脑发起的验证链接,又涉及设备绑定。先明确设计:链接验证的是地址、当前浏览器,还是原网关会话。异机被拒绝可以是正确结果,但应说明如何回到原设备输入码或重新申请。
重复打开链接也要测。确认页面不会重复授权不相关设备,且已消费令牌给出可理解的状态。不要为了测试通过而取消绑定或放宽重定向校验。
重发时,把顺序打乱再测一次
连续请求两次,按请求编号区分 A、B,再分别尝试旧码与新码。不能按收件列表顺序推断哪个更新:队列延迟可能让 A 比 B 晚到。若规则是“仅最新码有效”,前端提示、服务校验与邮件说明应一致;其他策略同样需要明确声明。
在受控环境检查重复提交、超出频率与冷却结束后的恢复。限流必须有服务端约束,不能只让按钮变灰;网络超时也不能直接宣称“没有发送”,因为后台可能已接受请求。记录实际结果,避免无节制重试触发真实网络的滥用防护。
分别测邮箱与门户令牌过期
Tmpkey 临时邮箱默认有效 3 小时;门户验证码或验证链接的寿命由门户另行决定。邮箱还剩两小时,几分钟前发出的令牌也可能已经过期;邮箱续期不会更新门户令牌。
至少拆成两个用例:邮箱有效但令牌过期,预期拒绝验证并可重新申请;邮箱过期但门户令牌尚在声明期限内,检查门户自己的处理规则,不能假定地址失效会自动撤销已签发令牌。还应覆盖令牌到期前后边界、重复使用及服务端时间校验。
缩短 TTL 的测试配置仅用于隔离环境,并记录与生产的差异。临时邮箱真实销毁边界仍需单独观察,不用改手机时钟假装服务器已过期。
续期保留地址,换址结束旧箱
每次续期追加 3 小时,单个邮箱从创建起最长 24 小时,最终以服务返回的到期时间为准。测试时核对地址不变、原信仍在、倒计时更新;接近上限时也不能预期再完整增加 3 小时。
更换地址则创建新的默认 3 小时邮箱,并销毁旧邮箱。先结束当前用例、脱敏保存必要证据,再更换;不要在等待邮件途中换址,然后把旧地址收不到信算作投递故障。新地址也不会自动改写门户之前保存的收件目标。
让证据能复现,但不能被拿来登录
每条记录包含:用例编号、环境与构建版本、设备与浏览器版本、网络状态、验证方式、脱敏地址、请求标识、三个时间点、预期与实际结果。分别勾选“收件”“验证”“放行”,不要只填一个通过或失败。
提交缺陷前,检查四处泄露点
- 截图遮住完整邮箱、有效验证码、二维码和住客资料。
- HAR 与请求日志移除 Authorization、Cookie、邮箱 token 及链接查询密钥。
- 复现步骤写状态与操作,不附仍有效的验证链接。
- 证据存入限权位置,按团队期限清理;不要上传公共工单。
需要关联同一地址时使用用例内代号或受控散列,不保留完整凭证。销毁测试邮箱不会撤回工单截图、下载文件或外部系统副本,这些要另外清理。
临时邮箱不是投递覆盖率报告
一次成功只说明这个时间、这条路径与这个收件域的结果。它不能代表 Gmail、Outlook、企业邮箱的垃圾分类、信誉策略或收件展示。上线前仍应使用获得授权的真实邮箱样本,检查各提供商表现,并建立生产投递、退信与验证转化监控。
门户可能明确拒绝一次性地址,应记录为地址接受策略,不绕过限制。需要实名核验、付款通知、住宿变更、账号找回或长期客服联系时,不应用会销毁的地址;匿名邮箱也不隐藏网络来源,更不能替代安全审计。
下一轮:先收信,再决定是否长期保留
短期测试,用一个独立地址跑完整条链路。跨天回归需要稳定地址时,可评估长期转发别名:来信转到自己的邮箱,配置与近 30 天存档独立管理。转发会增加链路,不能把它的延迟直接与临时收件结果混为一组。
面向实际使用者的门户填写步骤,见酒店、机场与咖啡店上网邮箱指南;数据处理范围见隐私政策。