收件箱
返回开发者与 QA

浏览器隔离并不会延伸到外部邮箱

为什么并行 CI 的 E2E 邮件测试需要隔离收件箱

让每个test或worker拥有自己的收件地址,避免并行执行互相读取、失效或清理对方的邮件状态。

约 8 分钟

Playwright的BrowserContext可以完全隔离,但如果两个测试都向同一邮箱发送OTP,它们仍然会竞争。同一recipient在并行CI里就是共享backend data,会产生串行运行时看不到的race condition。

收件人也属于test data

Playwright建议并行worker使用独立backend data,Cypress强调test independence。邮件地址应遵循同样规则。

清理cookie不会删除外部mailbox中的message,也不会恢复token validity。

常见冲突

冲突False passFalse fail
两个signupA使用B的邮件message已被消费
两个OTPparser接受任意coderesend使另一code失效
两个reset错误link修改测试账号token相互替换
global cleanupinbox看起来干净其他worker丢证据

选择隔离单位

  1. 1

    优先每个test一个地址

    最清楚的ownership。

  2. 2

    每worker共享只适合内部serial

    否则冲突仍在。

  3. 3

    增加correlation

    test ID、时间窗口或subject帮助诊断。

  4. 4

    local teardown

    只清理自己拥有的资源。

隔离原则不依赖具体工具

手工QA可以用新的临时收件箱;无人CI则应使用可编程基础设施。本质都是两个活跃scenario不能意外共享邮件authentication state。

把recipient当作fixture,并让每个scenario拥有自己的mail state,parallel email testing会明显更可靠。

需要一个干净的收件地址做手工邮件 QA?

使用 MailOnce 检查真实的注册、OTP、魔法链接、密码重置和通知邮件,无需把个人邮箱放进测试数据。

创建临时邮箱

来源与延伸阅读

用于支撑测试建议的安全资料和测试运行器一手文档。

继续测试

继续查看同一邮件测试问题空间中的下一个边界。