Использование 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
👀 Смотрите также

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

克劳德设计与华数设计:HTML布局与速率限制的对决
Claude Design быстро создает HTML-прототипы, но быстро упирается в лимиты. Huashu-Design, открытый навык Claude Code, работает по обычной подписке без отдельного лимита, но занимает 20 минут вместо 5.

OpenClaw .NET: Порт NativeAOT с JSON-RPC Мостом для Существующих Плагинов
OpenClaw .NET — это порт OpenClaw на C#, который компилируется в бинарный файл NativeAOT размером около 23 МБ, исключая время разогрева JIT и накладные расходы среды выполнения Node, сохраняя при этом совместимость с существующими плагинами на TypeScript/JavaScript через встроенный мост JSON-RPC.

NexQuant: Rust-нативный 3-битный движок KV-кэша для развертывания на периферийных устройствах
NexQuant — это готовый к промышленному использованию движок на Rust, который позволяет запускать модели с большим контекстом на потребительском оборудовании с сокращением использования памяти в 3–5 раз. Поддерживает бэкенды Metal, CUDA, Vulkan и CPU.