用途:为 Vercel 预览部署提供综合的端到端(E2E)与安全测试,在 PR 针对 main 或 develop 创建后、合并生产批准前触发,也可手动调用。
主要能力:冒烟测试(关键用户流程:登录、上传、分析,<2 分钟);视觉回归(截图对比,容差 1%,<3 分钟);安全测试(OWASP LLM01 提示注入、配额绕过、Stripe Webhook 安全,<5 分钟);DSGVO 区域检查(验证 Frankfurt fra1 区域,<30 秒);npm audit 依赖漏洞扫描(<1 分钟)。安全测试覆盖直接注入(越狱、DAN、角色操纵)、系统提示提取防护、伪造历史上下文劫持、文件上传间接注入、多语言绕过,以及 API 认证绕过、邮件伪造、Demo 模式滥用、配额检查竞态、测试用户邮箱发现,Webhook 签名校验、重放攻击防护、载荷篡改检测与订阅欺诈防护。
使用方式:使用 /preview-test 运行标准测试(冒烟+视觉+安全),--security 仅安全测试,--ai 启用可选的 AI 探索性测试。本地执行:npm run test:e2e;仅安全测试:npx playwright test tests/security/ --project=chromium;针对 Vercel 预览:BASE_URL=https://preview-xxx.vercel.app npx playwright test tests/security/。工作流定义在 .github/workflows/preview-test.yml,PR 自动运行并生成结果评论。此外可通过 Claude-in-Chrome MCP 进行交互式调试,包括读取页面结构、查找元素、截图、录制 GIF、读取控制台消息与网络请求。
限制:安全测试使用 test.skip(!isVercelDeployment, ...),仅在类生产的 Vercel 预览环境运行,本地因需要真实 serverless 环境(如速率限制)而跳过;视觉回归首次运行创建基线,缺失基线时变更记为差异,可用 --update-snapshots 更新。阻断逻辑:冒烟与安全测试必须通过,视觉回归和 npm audit 失败仅警告不阻断;安全失败则阻断合并。所有测试验证 fra1 区域,使用合成测试数据(faker.js),安全报告保留 30 天。