用途:为 Opik 的某个功能、页面或分支添加端到端测试,产出可在本地验证通过的 Playwright 测试。
主要能力与流程:技能按固定循环推进——先确定范围(功能、页面、目标环境、标签),默认目标为本地 OSS http://localhost:5173(OPIK_DEPLOYMENT=oss,workspace 为 default);再分析功能与前端代码,读取 apps/opik-frontend/src/v2/pages/<Page>/ 下的路由与 data-testid;随后做实时 UI 发现(走 Playwright MCP,快照无障碍树、枚举 data-testid、选最稳定选择器,缺少稳定选择器时在本次改动中补 data-testid);然后编写 POM 与 spec;最后运行至通过。
测试结构:套件位于 tests_end_to_end/e2e/,specs 在 tests/<feature>/<name>.spec.ts,POM 在 pom/<name>.page.ts,fixtures 在 fixtures/<name>.fixture.ts,SDK 客户端在 core/sdk/,桥接服务为 services/opik-sdk-driver/(FastAPI,Playwright 的 webServer 会自动拉起)。
使用方式:从 tests_end_to_end/e2e/ 用 Playwright CLI 运行,例如 npx playwright test tests/<feature>/<name>.spec.ts --reporter=list;失败时可用 npx playwright show-trace 查看追踪。播种数据应通过 SDK/桥接而非 UI 点击创建。若新增 data-testid,本地 OSS 前端来自 Docker 镜像,需在 deployment/docker-compose/ 下重新构建并重启容器,如 docker compose --profile opik build frontend,然后停止并重建 frontend 容器(OPIK_FRONTEND_PULL_POLICY=never),并可用 docker exec 校验 testid 是否生效。
限制与注意:播种前须检查 ~/.opik.config,若 url_override 不是本地地址需先备份并改为本地,完成后提醒恢复;否则可能向云端写入真实数据。编写 POM 或 spec 前应先阅读 conventions.md,遵循 test.step() 包装、UI 优先断言等约定。技能也列出若干反模式,如用结构选择器代替 data-testid、只探索空状态、在完整套件中调试单个 spec 等。部分细节的官方说明暂未提供。