ADB, Android Debug Bridge, — это консольная утилита из Android SDK для работы с Android-устройствами: эмуляторами и реальными телефонами. С её помощью можно устанавливать и удалять приложения, запускать и принудительно останавливать их, очищать данные, менять уровень заряда батареи, подстраивать размер экрана и смотреть логи в реальном времени. Большинство веб-тестировщиков с ADB вообще не сталкиваются, поэтому даже базовое владение этим инструментом заметно выделяет резюме на фоне остальных кандидатов.
Что такое ADB и почему его редко знают веб-тестировщики
Android SDK — это набор инструментов для разработки под Android, куда входят Android Studio, эмулятор, библиотеки и сама утилита ADB. ADB позволяет из консоли делать всё, что нужно для дебага и тестирования: отлавливать ошибки, менять конфигурации устройства, ставить и сносить приложения, смотреть логи.
Формально это инструмент мобильного тестировщика, и веб-тестировщику работать с ним каждый день не обязательно. Но именно поэтому знание ADB работает как конкурентное преимущество: если на проекте внезапно понадобится протестировать Android-приложение или хотя бы разобраться, куда смотреть при баге, у веб-тестировщика с базовыми знаниями ADB уже будет фундамент, а не полное непонимание, с чего начать. Конкретные команды легко забываются и гуглятся за пять минут — важно именно понимание, что инструмент существует и для чего он нужен.
Формально это инструмент мобильного тестировщика, и веб-тестировщику работать с ним каждый день не обязательно. Но именно поэтому знание ADB работает как конкурентное преимущество: если на проекте внезапно понадобится протестировать Android-приложение или хотя бы разобраться, куда смотреть при баге, у веб-тестировщика с базовыми знаниями ADB уже будет фундамент, а не полное непонимание, с чего начать. Конкретные команды легко забываются и гуглятся за пять минут — важно именно понимание, что инструмент существует и для чего он нужен.
Базовые команды: устройства, установка и удаление приложений
Работа начинается с запуска эмулятора прямо из консоли: команда emulator -list-avds покажет список всех настроенных виртуальных устройств, а emulator @ИмяУстройства запустит конкретное. После запуска эмулятора удобно работать в двух окнах терминала — в одном крутится сам эмулятор, во втором вводятся команды ADB.
Команда adb devices покажет список подключённых устройств — как эмуляторов, так и реальных телефонов по USB, а adb devices -l выдаст более подробную информацию о каждом из них. Если ADB «залип» и перестал адекватно реагировать, помогает adb kill-server — это перезапускает не само устройство, а сам сервис ADB. Когда подключено сразу несколько устройств, к конкретному из них можно обратиться флагом -s с указанием его идентификатора, например adb -s emulator-5554 install путь_к_apk.
Установка приложения делается командой adb install с указанием пути до APK-файла — причём в терминалах вроде GitBash путь можно не вводить вручную, а просто перетащить файл мышкой прямо в окно терминала. Для удаления приложения нужно знать его package name, который можно найти через adb shell pm list packages, а если список слишком длинный — отфильтровать через grep, например adb shell pm list packages | grep bms.
Команда adb devices покажет список подключённых устройств — как эмуляторов, так и реальных телефонов по USB, а adb devices -l выдаст более подробную информацию о каждом из них. Если ADB «залип» и перестал адекватно реагировать, помогает adb kill-server — это перезапускает не само устройство, а сам сервис ADB. Когда подключено сразу несколько устройств, к конкретному из них можно обратиться флагом -s с указанием его идентификатора, например adb -s emulator-5554 install путь_к_apk.
Установка приложения делается командой adb install с указанием пути до APK-файла — причём в терминалах вроде GitBash путь можно не вводить вручную, а просто перетащить файл мышкой прямо в окно терминала. Для удаления приложения нужно знать его package name, который можно найти через adb shell pm list packages, а если список слишком длинный — отфильтровать через grep, например adb shell pm list packages | grep bms.
Управление приложением: запуск, force-stop, очистка данных, разрешения
Чтобы запустить приложение из консоли, нужно узнать его главную Activity — точку входа. Команда adb shell dumpsys package имя_пакета выводит подробную информацию, где в разделе Activity Resolver Table можно найти строку вида пакет/.MainActivity. Дальше приложение запускается командой adb shell am start пакет/.MainActivity, а принудительно останавливается через adb shell am force-stop имя_пакета — важно, что для запуска нужно указывать Activity, а для остановки — только имя самого приложения.
Отдельно полезна команда очистки данных приложения — adb shell pm clear имя_пакета. Она пригождается, например, когда нужно многократно тестировать экран онбординга, который показывается только при первом запуске приложения. Раньше для повторного теста приходилось удалять приложение, ставить заново и проходить весь путь заново — с pm clear это делается за пару секунд, потому что приложение просто ведёт себя так, будто его только что установили.
Ещё одна полезная команда — просмотр разрешений, которые запрашивает приложение: камера, геолокация, контакты. Список permissions можно получить командой adb shell dumpsys package имя_пакета | grep permission.
Отдельно полезна команда очистки данных приложения — adb shell pm clear имя_пакета. Она пригождается, например, когда нужно многократно тестировать экран онбординга, который показывается только при первом запуске приложения. Раньше для повторного теста приходилось удалять приложение, ставить заново и проходить весь путь заново — с pm clear это делается за пару секунд, потому что приложение просто ведёт себя так, будто его только что установили.
Ещё одна полезная команда — просмотр разрешений, которые запрашивает приложение: камера, геолокация, контакты. Список permissions можно получить командой adb shell dumpsys package имя_пакета | grep permission.
Логи, батарея и экзотические экраны
Одна из самых важных задач для мобильного тестировщика — работа с логами через adb logcat. Базовая команда выводит все логи устройства в реальном времени, пока её не остановить. Флаг -d делает разовый снимок текущих логов вместо бесконечного потока, а -c очищает накопленные записи. Логи можно отфильтровать по конкретному приложению, добавив package name после команды, и сохранить в файл через >>, чтобы потом просто передать разработчику готовый файл вместо ручного копирования из консоли. Важно помнить: наличие ошибок в логах тестового приложения не всегда означает реальную проблему — например, если приложение работает без подключения к серверу, часть ошибок в логах будет ожидаемой.
ADB также позволяет управлять состоянием батареи эмулятора командой adb shell dumpsys battery set level с указанием процента заряда — это удобно, чтобы проверить, как приложение ведёт себя при низком заряде: сохраняет ли данные, уходит ли в спящий режим. Вернуть значение к исходному можно той же командой со значением 100.
Ещё одна практичная возможность — изменение размера экрана на лету через adb shell wm size ширинаxвысота, например 650x1000. Это спасает в ситуации, когда пользователь жалуется на баг вёрстки на каком-то нестандартном устройстве, а покупать это устройство ради одного теста нет смысла — гораздо быстрее просто сконфигурировать нужное разрешение прямо в эмуляторе. Вернуть исходные параметры можно командой adb shell wm size reset.
ADB также позволяет управлять состоянием батареи эмулятора командой adb shell dumpsys battery set level с указанием процента заряда — это удобно, чтобы проверить, как приложение ведёт себя при низком заряде: сохраняет ли данные, уходит ли в спящий режим. Вернуть значение к исходному можно той же командой со значением 100.
Ещё одна практичная возможность — изменение размера экрана на лету через adb shell wm size ширинаxвысота, например 650x1000. Это спасает в ситуации, когда пользователь жалуется на баг вёрстки на каком-то нестандартном устройстве, а покупать это устройство ради одного теста нет смысла — гораздо быстрее просто сконфигурировать нужное разрешение прямо в эмуляторе. Вернуть исходные параметры можно командой adb shell wm size reset.
Monkey testing — хаотичное тестирование
Monkey — встроенная в Android SDK утилита, которая автоматически и хаотично «нажимает» на случайные точки экрана, имитируя пользователя, который бессистемно тычет в приложение, пытаясь его сломать — отсюда и название. Такой подход дополняет обычное тестирование: Monkey может случайно наткнуться на баг, который вручную придумать и воспроизвести было бы сложно.
Базовый запуск выглядит так: adb shell monkey -p имя_пакета -v 100, где -p указывает package name, -v включает подробный вывод, а число задаёт количество случайных событий. Чтобы тест был более реалистичным — реальный человек не нажимает сто раз в секунду, — добавляют задержку между действиями флагом --throttle в миллисекундах, например --throttle 100. А чтобы Monkey не нажимал системные кнопки вроде «Назад» или «Домой», используют флаг --pct-syskeys 0. Если баг найден, дальше он ищется тем же способом, что и обычно — через логи, приложенные к отчёту.
Знание ADB и Monkey testing не превращает веб-тестировщика в мобильного специалиста, но даёт понятный фундамент, который выделяет резюме и пригождается, если проект вдруг потребует поддержки Android-приложения. В Quality Academy на курсе «Инженер по ручному тестированию» этот инструментарий разбирается в отдельной практической лекции, где студенты сами устанавливают приложения, запускают эмуляторы и пробуют Monkey testing на реальном APK.
-------
Базовый запуск выглядит так: adb shell monkey -p имя_пакета -v 100, где -p указывает package name, -v включает подробный вывод, а число задаёт количество случайных событий. Чтобы тест был более реалистичным — реальный человек не нажимает сто раз в секунду, — добавляют задержку между действиями флагом --throttle в миллисекундах, например --throttle 100. А чтобы Monkey не нажимал системные кнопки вроде «Назад» или «Домой», используют флаг --pct-syskeys 0. Если баг найден, дальше он ищется тем же способом, что и обычно — через логи, приложенные к отчёту.
Знание ADB и Monkey testing не превращает веб-тестировщика в мобильного специалиста, но даёт понятный фундамент, который выделяет резюме и пригождается, если проект вдруг потребует поддержки Android-приложения. В Quality Academy на курсе «Инженер по ручному тестированию» этот инструментарий разбирается в отдельной практической лекции, где студенты сами устанавливают приложения, запускают эмуляторы и пробуют Monkey testing на реальном APK.
-------
Полезные ссылки школы
Сайт Quality Academy:
/main
Telegram-канал:
https://t.me/quality_academy
YouTube-канал:
https://www.youtube.com/@quality_academy
ВКонтакте:
https://vk.com/quality_academy
Канал отзывов учеников (58+ отзывов):
https://t.me/quality_academy_reviews
Задать вопрос менеджеру:
https://t.me/quality_academy_bot
Тест «Подойдёт ли вам тестирование»:
https://quiz.quality-academy.ru
5000+ вопросов с собесов тестировщика — бот-тренажёр:
https://t.me/quality_academy_interview_bot
3 практические задачи и дорожная карта:
https://t.me/quality_academy_tasks_bot
Бесплатные тренажёры — SQL Arena, Playwright Arena, Python Arena:
SQL Arena · Playwright Arena · Python Arena
/main
Telegram-канал:
https://t.me/quality_academy
YouTube-канал:
https://www.youtube.com/@quality_academy
ВКонтакте:
https://vk.com/quality_academy
Канал отзывов учеников (58+ отзывов):
https://t.me/quality_academy_reviews
Задать вопрос менеджеру:
https://t.me/quality_academy_bot
Тест «Подойдёт ли вам тестирование»:
https://quiz.quality-academy.ru
5000+ вопросов с собесов тестировщика — бот-тренажёр:
https://t.me/quality_academy_interview_bot
3 практические задачи и дорожная карта:
https://t.me/quality_academy_tasks_bot
Бесплатные тренажёры — SQL Arena, Playwright Arena, Python Arena:
SQL Arena · Playwright Arena · Python Arena