Использование Claude для автоматизации тестирования мобильных приложений с помощью Capacitor WebViews

Разработчик описал, как он научил Claude выполнять автоматизированный контроль качества для мобильного приложения, созданного с помощью Capacitor. Приложение использует React, обёрнутый в нативные оболочки (WebView на Android, WKWebView на iOS) с архитектурой серверно-управляемого интерфейса, что позволяет одному кодовому базису работать на веб-платформах, iOS и Android.
Проблема тестирования и решение
Приложения на Capacitor находятся в пробеле тестирования: Playwright не может получить доступ к нативной оболочке, а XCTest и Espresso не могут взаимодействовать с HTML внутри WebViews. Разработчик создал Python-скрипт, который использует Claude для управления обеими мобильными платформами, делает скриншоты, анализирует их на наличие проблем и автоматически создаёт отчёты об ошибках.
Детали реализации для Android
Настройка Android заняла 90 минут. Ключевые шаги:
- Исправление подключения:
adb reverse tcp:3000 tcp:3000иadb reverse tcp:8080 tcp:8080(требует повторного запуска после перезапуска эмулятора) - Доступ к DevTools WebView: Найти сокет с помощью
adb shell "cat /proc/net/unix" | grep webview_devtools_remote - Перенаправление на локальный порт:
adb forward tcp:9223 localabstract:$WV_SOCKET - Полный доступ к Chrome DevTools Protocol через
curl http://localhost:9223/json
Скрипт проверяет все 25 экранов приложения примерно за 90 секунд, используя CDP для навигации и аутентификации (внедряя JWT в localStorage) и adb shell screencap для создания скриншотов.
Анализ и отчётность об ошибках
Скриншоты анализируются на визуальные проблемы: нарушенные макеты, сообщения об ошибках, отсутствующие изображения, пустые экраны и перекрытие строки состояния. При обнаружении проблем система:
- Аутентифицируется как zabriskie_bot
- Загружает скриншоты в S3
- Создаёт отчёты об ошибках в рабочем форуме в формате:
[Android QA] Shows Hub: RSVP button overlaps venue text
Система знает ожидаемые состояния: ответы "Forbidden" для не-членов на страницах команды не являются ошибками, пустые кружки аватаров не являются ошибками, а текст "Preview" в настройках профиля — это известная косметическая проблема.
Реализация для iOS
Настройка iOS заняла более шести часов, что подчёркивает различия в инструментах мобильной автоматизации. В статье отмечается этот контраст, но предоставляется меньше конкретных технических деталей о реализации iOS по сравнению с Android.
Развёртывание
Вся система контроля качества работает как запланированная задача каждое утро в 8:47.
📖 Read the full source: HN AI Agents
👀 Смотрите также

Монитор использования Claude: Бесплатное приложение для macOS в строке меню для отслеживания лимитов Claude.ai
Разработчик создал Claude Usage Monitor — бесплатное приложение для macOS в строке меню, которое отображает использование Claude.ai с помощью цветных значков, счетчиков в реальном времени и таймеров сброса. Приложение считывает данные напрямую из сессий Claude.ai, не требуя API-ключа.

SiteTest.ai запускает бесплатный AI Visibility Checker для ChatGPT, Perplexity и Gemini
Новый бесплатный инструмент sitetest.ai проводит GEO-аудит по 168 пунктам, проверяя GPTBot, PerplexityBot и Google-Extended на вашем реальном сервере. Оценка от A до F для каждого движка плюс готовые к вставке исправления кода.

Vibeyard добавляет доску Канбан для управления несколькими сессиями Claude Code
В открытой IDE Vibeyard теперь есть доска Канбан, позволяющая запускать сессии агента Claude Code прямо с карточек. Карточки автоматически перемещаются в раздел «Готово», когда агент завершает работу.

7-Файловый Уровень Управления для Предотвращения Дрейфа Сессий LLM
Разработчик создал слой управления с семью файлами, чтобы предотвратить тихую отмену архитектурных решений Клодом между сессиями. Система включает файлы active_context.md, contracts.md и decisions.md со строгим циклом выполнения.