Write mobile tests
in plain English.
用自然语言
编写移动端测试。
Runs across Android, iOS, and Web in parallel. Drive it from the desktop app, a CLI, or any MCP-compatible AI agent. 并行执行于 Android、iOS 和 Web 之上。通过桌面端、命令行或任意支持 MCP 的 AI Agent 驱动。
device: android steps: - open app: com.example.shop - tap: "Sign in" - type: username = "alice@example.com" - type: password from: env.TEST_PASSWORD - tap: "Continue" - assert visible: "Welcome back, Alice" - screenshot: "logged-in" # 7 steps · ~4.2s · passes on Pixel 8 + iPhone 15
Built for teams shipping on 为以下平台发版的团队而造
// placeholder wordmarks — swap for real partners post-launch // 占位字标 — 正式上线后替换为真实合作方
/ features
One DSL. Three runtimes. Zero flakes. 一套 DSL,三端运行时,零 Flaky。
The things Appium and Detox should have been — built for 2026, driven by agents. Appium 和 Detox 本该有的样子 — 为 2026 而生,由 Agent 驱动。
One DSL, three platforms. 一套 DSL,三端通行。
The same YAML test runs on Android via adb, iOS via WebDriverAgent, and Web via CDP. No per-platform forks, no duplicate selectors. 同一份 YAML 用例,在 Android 通过 adb、iOS 通过 WebDriverAgent、Web 通过 CDP 执行。无需分叉,也无需重复维护选择器。
AI that actually sees the screen. 真正"看得见"屏幕的 AI。
Gemini vision assertions + on-device OCR. assert visible: "Welcome" works on React Native, Flutter, and pure-canvas UIs where the view tree is a lie. Gemini 视觉断言 + 本地 OCR。即便在 React Native、Flutter 和纯 Canvas 界面里 —— view tree 不可信时 —— assert visible: "Welcome" 依然有效。
Drive it from any MCP agent. 任意 MCP Agent 皆可驱动。
Ship tapilot-mcp as a server, point Claude Code, Cursor or any MCP host at it, and let the agent explore, regress, and file tickets autonomously. 部署 tapilot-mcp 服务端,将 Claude Code、Cursor 或任意 MCP 宿主接入,让 Agent 自主探索、回归并提交工单。
Not a toy. Production surface area: 不是玩具。真实生产级接口面:
/ observability
Record once, debug forever. 一次录制,永久可回溯。
Every run produces a signed report pack: full-resolution screen recording, per-step screenshots, raw logcat / device.log, and a human-readable run.md. Flakes no longer require a repro — the failing run is the repro. 每次执行都会产出带签名的报告包:全分辨率录屏、逐步截图、原始 logcat / device.log,以及一份人类可读的 run.md。Flaky 再也无需复现 —— 失败本身就是复现。
- ▸ H.264 recording at 60fps, 2–4 MB per minute 60fps H.264 录制,每分钟 2–4 MB
- ▸ Per-step LLM explanation of what went wrong 每一步失败的 LLM 解释,直接回答"为什么挂了"
- ▸ Reports archivable to S3 / R2 / local disk 报告可归档至 S3 / R2 / 本地磁盘
device: ios steps: - open app: com.northwind.ios - tap: "Cart" - swipe: up until: "Checkout" - tap: "Checkout" - assert visible: "Order total"
/ authoring
Five ways to write a test. 五种写法,按团队取用。
DSL-only for the reviewable kind. AI-only for exploratory. AI planning with DSL execution for deterministic replay. Hybrid for the 80% case. Or drop to plain JS when you need it. 纯 DSL,适合 Code Review;纯 AI,适合探索;AI 规划 + DSL 执行,适合可确定性回放;混合模式覆盖 80% 场景;需要时也可直接切到 JS。
/ ci
CI-native. No emulators, no babysitting. 原生 CI 友好。无需模拟器,也无需看护。
Spin N real devices in parallel on self-hosted runners or Tapilot Cloud. Reports upload as artifacts, a PR-comment bot drops a diff of screenshots and perf metrics vs. main. 在自建 Runner 或 Tapilot Cloud 上并行启动 N 台真机。报告自动作为构件上传,PR 评论 Bot 自动对比 main 分支的截图与性能差异。
- ▸ Matrix across device × OS × locale in one file 一份文件跑 设备 × 系统 × 语言 矩阵
- ▸ Fail-fast retry only the flaky step, not the whole run 失败时只重试 flaky 的那一步,不整轮重跑
- ▸ Native action: tapilot/run-action@v1 官方 Action:tapilot/run-action@v1
name: E2E on: [pull_request] jobs: e2e: runs-on: macos-14 strategy: matrix: device: [pixel-8, iphone-15, chrome] steps: - uses: tapilot/run-action@v1 with: suite: tests/**/*.yaml device: ${{ matrix.device }} parallel: 4 upload-report: true
/ live mirror
See every pixel. Even while a run is remote. 每一个像素都看得见,即使远程执行。
Three mirroring modes built in. Switch between a lightweight screenshot loop for 2G networks, H.264 streaming via scrcpy+jmuxer for local-LAN work, or a full external scrcpy window for the low-latency surgical debugging session. 内置三种镜像方案。2G 网络下可切至轻量截图轮询;局域网下切换为 scrcpy+jmuxer H.264 串流;做精细调试时可直接外挂 scrcpy 独立窗口。
/ pricing
Pricing that matches the value, not the seats. 按价值计费,而非按座位。
Every plan includes the desktop app, the DSL, and the MCP server. Only runs, reports, and governance scale up. 每个套餐都包含桌面端、DSL 和 MCP 服务端。仅运行次数、云报告与治理能力随套餐递增。
For solo devs kicking the tires. 个人开发者试水首选。
- ✓ 100 runs / month100 次 / 月
- ✓ Desktop app (macOS / Win / Linux)桌面端(macOS / Win / Linux)
- ✓ Local reports本地报告
- ✓ Community DiscordDiscord 社区
For indie teams shipping weekly. 每周发版的小型团队适用。
- ✓ 2,000 runs / month2,000 次 / 月
- ✓ Cloud reports + 90-day retention云端报告 · 90 天保留
- ✓ Priority email support (<24h)优先邮件支持(<24 小时)
- ✓ Flake alerts + weekly digestFlaky 告警 + 每周摘要
For orgs with an actual QA budget. 拥有专职 QA 预算的组织适用。
- ✓ 10,000 runs / month10,000 次 / 月
- ✓ SSO (SAML + OIDC) & SCIMSSO(SAML + OIDC)与 SCIM
- ✓ Audit log · 365-day retention审计日志 · 365 天保留
- ✓ Slack / Discord webhooks · multi-seatSlack / Discord Webhook · 多席位
All plans: unlimited devices, unlimited seats on Free & Pro, 30-day refund window. 所有套餐:设备数不限,Free 与 Pro 席位不限,30 天无理由退款。
Stop writing flaky tests. 别再写 flaky 测试了。
Install in 60 seconds. First green run in about four. 60 秒安装完成,约 4 分钟跑出首条通过用例。