|
|
5 dni temu | |
|---|---|---|
| reports | 5 dni temu | |
| scripts | 3 tygodni temu | |
| tests | 2 tygodni temu | |
| tools | 5 dni temu | |
| .env.example | 4 tygodni temu | |
| .gitignore | 5 dni temu | |
| README.md | 1 miesiąc temu | |
| mise.toml | 1 miesiąc temu | |
| package.json | 1 miesiąc temu | |
| playwright.config.ts | 4 tygodni temu | |
| pnpm-lock.yaml | 1 miesiąc temu | |
| tsconfig.json | 1 miesiąc temu | |
这是独立的 Playwright 真实联调工程。test:full 默认会为当前批次自动启动并回收隔离的临时 API 与 Web,Web 使用随机本机端口并代理到临时 API;测试仍连接真实开发数据库和真实本地/上游能力,不使用业务 Mock,也不会把《账号.MD》中的凭据复制到工程、日志或报告。
确认 ai_person_web、ai_person_api 的依赖已经安装后,在本目录执行;无需提前手工启动 8001/8003:
pnpm install --frozen-lockfile
pnpm run install:browsers
pnpm run test:full
临时进程使用仅存在于本次子进程环境中的随机远控 Pepper 和敏感词导入签名密钥,运行结束后会被精确回收。确需复用已启动的联调服务时,可设置 E2E_USE_EXISTING_STACK=true;其他可选项见 .env.example。
在执行 Playwright 前,runner 会调用 API 项目的 scripts/seed_demo_business_data.py --summary-json,按 manifest 幂等补齐持久演示数据并校验演示媒体文件;摘要保存在本批次的 demo-seed-summary.json。除非调用者已经完成同一份初始化,否则不要关闭这一步。
每次完整运行会生成独立目录:
artifacts/runs/<runId>/
screenshots/
test-results/
html-report/
results.json
verification.json
全量E2E测试报告.md
环境变量可写入本地 .env(已忽略),模板见 .env.example。账号默认从 ../账号.MD 读取,仅支持 UTF-8 的“账号:…”与“密码:…”两项。
所有真实写入统一使用 APE2E-<runId> 标记,并在用例 finally 中逆序清理。全局菜单、品牌与基础配置必须快照后恢复;外部数字人、ASR/TTS、FFmpeg、第三方知识、实际终端等条件不满足时必须明确跳过,不能用 Mock 冒充联调成功。
逐页视觉验收不再只检查路由和标题:每个正式数据页必须先显示至少一条真实数据库行/卡片,并命中 ../ai_person_api/scripts/demo_seed_manifest.json 中对应 DEMO- 演示实体的名称、编码或 slug,随后才允许生成成功截图。IAM、基础设置、菜单和个人中心也分别校验真实表格行、配置值或角色数据;空列表会直接使本批次失败。DEMO- 数据是开发环境的持久演示数据,不属于测试临时数据,后验收只清理 APE2E- 资源。
由于用例会填写真实密码、API Key 和一次性密钥,工程全局关闭 trace/video;成功和失败均保留全页截图,敏感输入区域由用例显式遮罩或在截图前清空。
test:full 在 Playwright 结束后还会自动执行后验收:扫描文本制品中的真实密码、Bearer/JWT 和测试临时密码,确认没有 trace/video,并通过正式 API 查询 IAM、配置、菜单与各业务资源中是否还存在 APE2E 标记数据。结果写入 verification.json 并汇总到 Markdown 报告。