跳到主要内容

E2E 测试

桌面 E2E 测试使用 WebDriverIO (WDIO) 通过两个自动化后端驱动 Tauri 应用:

平台驱动端口应用格式选择器
Linux / CEFtauri-driver4444调试二进制CSS / DOM
macOS / AppiumAppium Mac24723.appXPath / 无障碍

快速开始

macOS / Appium

# 安装 Appium + Mac2 驱动(一次性,需要 Node 24+)
npm install -g appium
appium driver install mac2

# 构建 .app 包
pnpm --filter openhuman-app test:e2e:build

# 运行所有流
pnpm --filter openhuman-app test:e2e:all:flows

Docker on macOS

# 构建 + 运行所有 E2E 流
docker compose -f e2e/docker-compose.yml run --rm e2e

# 运行单个 spec
docker compose -f e2e/docker-compose.yml run --rm e2e \
bash app/scripts/e2e-run-spec.sh test/e2e/specs/smoke.spec.ts smoke

环境变量

变量默认值说明
TAURI_DRIVER_PORT4444tauri-driver WebDriver 端口
APPIUM_PORT4723Appium 服务器端口
E2E_MOCK_PORT18473Mock 后端服务器端口
OPENHUMAN_WORKSPACE(temp dir)应用工作区目录

元素 helpers

app/test/e2e/helpers/element-helpers.ts 提供统一 API:

Helper说明
waitForText(text)等待文本出现
waitForButton(text)等待按钮出现
clickNativeButton(text)点击原生按钮
clickToggle()点击开关
waitForWebView()等待 WebView 就绪

稳定测试 ID

使用稳定的 data-testid hook:

  • cron-jobs-panel, cron-refresh
  • settings-nav-<routeId>
  • onboarding-next-button

CI 工作流

Push / PR 检查

默认 test.yml 工作流运行前端单元测试和 Rust 检查。Linux tauri-driver E2E 作业因 WebKitWebDriver 无法驱动 CEF 支持的 WebView 而被禁用。

macOS / Appium

macOS/Appium 是当前 CEF 桌面应用的支持自动化后端:

  1. 安装 Appium + Mac2 驱动
  2. 构建 .app
  3. 运行所有 E2E 流

故障排除

Linux: "WebView not ready" 超时

对于默认 CEF 运行时,这意味着不支持的 Linux tauri-driver 路径正尝试通过 WebKitWebDriver 驱动 CEF 支持的 WebView。使用 macOS/Appium。

Deep links 需要 .app 包。使用 pnpm tauri build --debug --bundles app

代理可观察工件流

bash app/scripts/e2e-agent-review.sh

工件位于 app/test/e2e/artifacts/<timestamp>-agent-review/

下一步