用途:为 Web 应用的端到端测试提供可复用的 Playwright 登录流程模式,减少每次测试重复登录。
主要能力:
- 基础用户名密码登录:goto('/login'),fill('[name="username"]')、fill('[name="password"]'),click('button[type="submit"]'),再用 waitForURL('/dashboard') 等待跳转。
- OAuth/SSO 登录:跳转登录页后点击 Google 登录,处理弹窗或重定向,填写邮箱与密码并等待回到应用,例如 waitForURL('**/dashboard');凭据来自 process.env.TEST_EMAIL、process.env.TEST_PASSWORD。
- 复用登录态:在 global-setup.ts(所有测试前运行一次)中启动 chromium,完成登录后调用 page.context().storageState({ path: './auth.json' }) 保存已登录状态;在 playwright.config.ts 中配置 globalSetup: './global-setup.ts' 与 use: { storageState: './auth.json' }。
- MFA/2FA:针对基于 TOTP 的测试环境,使用 otplib 的 authenticator.generate(secret) 生成验证码并填入 [name="totp"] 后提交。
使用要点与限制:凭据应通过环境变量传入,不要硬编码;CI 中建议使用专用测试用户与稳定凭据;登录后应使用 page.waitForURL() 而非固定 waitForTimeout()。OAuth 与 MFA 示例依赖外部提供方界面与测试环境可用性,实际选择器、URL 会因应用而异,需按目标站点调整。资料未说明该技能是否有额外安装命令、收费方式、平台限制或运行环境要求。