ARTEMIS — автоматизация Android-тестирования на человеческом языке

· 2 мин чтения
android test-automation mcp ai-agents mobile-testing
📂 Исходный код на GitHub

Инструмент от Google для автоматизации Android через естественный язык. MCP-интеграция, мультимодальный таргетинг, 99%+ на AndroidWorld. Apache 2.0, Python 3.12+.

ARTEMIS — автоматизация Android-тестирования на человеческом языке

ARTEMIS — это инструмент от Google, который превращает инструкции на естественном языке в автоматизацию реальных Android-устройств. Вместо написания UI-тестов вы просто описываете, что хотите сделать, а ARTEMIS выполняет это на подключённом телефоне или эмуляторе.

Проект создан для тестирования приложений и выполнения повседневных задач на Android. Он работает через MCP (Model Context Protocol) и интегрируется с IDE — Antigravity, Claude Code, Windsurf, Codex, Cursor, VS Code и другими. На бенчмарке AndroidWorld от Google Research ARTEMIS показывает 99%+ успешных выполнений задач.

Ключевые возможности

Кросс-приложенная автоматизация. ARTEMIS выполняет цепочки действий через несколько приложений — например, прокладывает маршрут в Google Maps и запускает видео в YouTube. Это не просто навигация по одному экрану, а полноценные workflow.

Мультимодальный таргетинг. Использует индексы элементов, когда они доступны, и откатывается на координаты и визуальный поиск для кастомных интерфейсов. Поддерживает Canvas, Compose и Flutter — интерфейсы, где стандартный accessibility tree не работает.

MCP-интеграция. Нативный MCP-сервер позволяет AI-ассистентам в IDE управлять реальными устройствами. Через Antigravity или Claude Code можно описать тест-кейс на естественном языке, а агент сам подключится к телефону, выполнит действия и соберёт логи.

Два профиля выполнения. Flash — быстрый реактивный цикл (~3–5 секунд на шаг) для рутинных UI-задач. Pro — планирование и верификация (~15–40 секунд на шаг) с multi-agent graph, планом задач, safety net и финальным отчётом.

Автоматическая установка зависимостей. Один скрипт start.sh (или start.bat на Windows) устанавливает ADB, scrcpy, FFmpeg, Python и настраивает MCP-конфигурацию для обнаруженных IDE.

Архитектура

ARTEMIS строится на нескольких ключевых компонентах:

  • Pre-Execution Checks — Pro-профиль проверяет целевой элемент по live UI-дереву и пикселям перед каждым действием
  • Element Locating — комбинация accessibility иерархий, OCR и визуальных моделей для нахождения элементов
  • Shared History Compression — старые скриншоты заменяются визуальными саммари, шаги сжимаются в поисковые чанки
  • Action Bursts — цепочки кликов для обработки transient UI без ожидания нового model turn

Профиль Flash

Быстрый и экономичный по токенам. Одна модель наблюдает экран, думает и действует — без graph-оркестрации. История сжимается вместо ограничения количества шагов. Поддерживает click_sequence для transient элементов (тоасты, автоисчезающие панели).

Ограничения: нет плана задач, нет safety net, нет checkpoint-верификации, нет ADB shell.

Профиль Pro

Multi-agent graph с Planner, Operator и Checker:

  • Planner — ведёт Markdown-план задач с milestone'ами и проверками
  • Operator — выполняет план с полным набором инструментов, включая Explorer, notes, history recall, видеоанализ, ADB-диагностику
  • Safety Net — проверяет каждое действие перед выполнением (XML-first, pixel fallback)
  • Checker — верифицирует checkpoint'ы и проводит финальную проверку

Pro обрабатывает workflow длиной 100+ шагов и поддерживает мониторинг в режиме continuous loop.

Установка и запуск

git clone https://github.com/google/artemis.git && cd artemis
./start.sh

Откроется http://localhost:8000 с wizard подключения устройства, live-зеркалированием, prompt sandbox и replay'ем выполнений.

Для прямого запуска из CLI:

uv run artemis run "Открой Настройки, найди Батарею и скажи текущий уровень" --profile flash

MCP для IDE

Для подключения к IDE:

# Автоустановка MCP и правил для Antigravity:
uv run artemis mcp --install antigravity

# Или для всех поддерживаемых IDE:
uv run artemis mcp --install all

Правила тестирования (rules.md)станавливаются в IDE для обеспечения корректного поведения агента — активное исследование перед кодированием, компенсация задержек, паттерн «Dynamic-First, Coordinate-Fallback».

Python SDK

Клиент без runtime-зависимостей для интеграции в pytest и CI/CD:

from artemis_client import ArtemisClient

client = ArtemisClient("http://artemis-host:8000", default_profile="flash")
result = await client.run("Открой Settings, проверь уровень батареи")
assert result.succeeded

Режимы работы

ARTEMIS предоставляет несколько способов взаимодействия:

Web Visual Test Console (uv run artemis ui) — интерактивная веб-панель с live-зеркалированием экрана, телеметрией рассуждений агента, траекториями действий и replay'ем выполнений. Поддерживает natural language dispatch и управление lifecycle сервера.

Developer CLI (uv run artemis run) — прямой запуск из терминала для automated test cases, exploratory stability inspection или бенчмарков AndroidWorld со структурированным выводом.

MCP Server — подключает IDE к реальным устройствам для воспроизведения багов и выполнения тестов.

Python SDK — библиотека для интеграции в pytest, CI/CD и существующие фреймворки автоматизации. Структурированный вывод через Pydantic, типизированные assertions.

Workflow с Antigravity

Типичный workflow выглядит так:

  1. Описываете тест-сценарий в Antigravity на естественном языке
  2. Antigravity формирует пошаговый test plan через MCP
  3. ARTEMIS автономно выполняет план на реальном устройстве — навигирует UI, профилирует производительность
  4. Финальный отчёт включает structured audit findings, таблицы метрик и raw datasets

Это превращает ручное тестирование в автоматизированный process, где QA-инженер формулирует интенции, а агент выполняет детали.

AndroidWorld

ARTEMIS достиг 99%+ completion rate на AndroidWorld — бенчмарке от Google Research, включающем 20+ приложений и 100+ multi-step задач. Это state-of-the-art результат среди существующих решений для мобильной автоматизации.

Roadmap

  • Интеграция с Android Studio (плагин для отладки и записи тестов)
  • Расширение на iOS
  • On-device lightweight VLMs для low-latency автоматизации
  • Real-time duplex voice interaction

Что устанавливается на телефон

ARTEMIS устанавливает Artemis Accessibility Helper — небольшой accessibility-сервис для чтения layout экрана без захвата UiAutomation connection. Уведомление скрыто, в Settings > Accessibility появляется запись. Сервис работает только на устройстве и ничего не отправляет наружу.

Управление: uv run artemis helper install / status / uninstall. При сбое автоматически откатывается на UIAutomator2.

Источник: https://github.com/google/artemis