[Из песочницы] Инструменты автоматизации процесса тестирования или мобильный тестировщик на стеройдах

Привет, Хабр! Меня зовут Павел Лесюк. Я занимаюсь ручным и автоматизированным тестированием мобильных приложений, а также стараюсь автоматизировать рутинные действия, которые приходится выполнять из раза в раз. В целом я стараюсь сделать свою работу максимально эффективной и продуктивной. Во всем этом мне помогают запрещенные вещества вспомогательные инструменты разных направленностей.
Во избежание путаницы, разделим инструменты для автоматизации на две большие группы:
- Инструменты автоматизации выполнения тестирования — непосредственно те инструменты, которые помогают автоматизировать выполнение тест-кейсов.
- Инструменты автоматизации процесса тестирования — те инструменты, которые упрощают жизнь при выполнении повседневных задач на протяжении всего цикла тестирования и про которые сегодня пойдет речь.
Цель статьи — сделать наиболее полный гайд по инструментам и их возможностям для тестирования мобильных приложений, актуальных на текущий момент. Некоторые из описанных инструментов имеют возможности, выходящие за рамки мобильного тестирования и тестирования в целом, поэтому статья будет полезна не только тестировщикам, но и всем специалистам, которые так или иначе вовлечены в процесс разработки программного обеспечения. Поехали!
Предисловие
Акцент статьи будет сделан на инструментах, доступных под операционную систему macOS. Но часть этих инструментов также доступна под Linux и Windows. Для большего удобства для каждого инструмента будет указан перечень доступных платформ, а также его стоимость в случае, если инструмент платный.
Структурируем инструменты на разделы:
Инструменты для тестирования Android приложений
Android Debug Bridge (ADB)
Платформы: macOS, Linux, Windows
Описание: консольная утилита, входит в состав Android SDK. Позволяет подключаться к запущенному в режиме отладки девайсу или эмулятору через USB или поверх TCP/IP и взаимодействовать с ним.
Возможности:
- Фильтрация, просмотр и сохранение логов.
- Установка и удаление приложений.
- Передача файлов с девайса на компьютер и обратно.
- Управление активити приложения и пакетами.
- Получение ID и состояния устройства.
- Управление устройством через Unix shell.
Android Studio
Платформы: macOS, Linux, Windows
Описание: интегрированная среда разработки Android приложений.
Возможности:
- Выполнение многих команд ADB через графический интерфейс.
- Анализ APK файлов.
- Управление настройками Android SDK.
- Установка, удаление и запуск эмуляторов.
- Установка и удаление приложений.
- Написание автотестов с использованием фреймворков Espresso и UIAutomator.

scrcpy
Платформы: macOS, Linux, Windows
Описание: консольная утилита для вывода экрана Android устройства на компьютер и управления им. Бесплатная альтернатива Vysor Pro.
Возможности:
- Управление устройством с помощью компьютера (поддерживает ввод только латиницы) и поддерживаемых шорткатов.
- Ограничение разрешения экрана.
- Изменение битрейта передачи.
- Обрезка экрана.
- Подключение нескольких устройств.

Android tool for Mac
Платформы: macOS
Описание: программа для работы с Android и iOS, позволяющая выполнять нижеперечисленные действия в один клик.
Возможности:
- Снятие скриншотов.
- Запись видео.
- Установка APK.
- Запуск своих скриптов.

Android File Transfer
Платформы: macOS
Описание: утилита для работы с файловой системой Android.
Возможности:
- Просмотр структуры файловой системы Android устройства.
- Обмен файлами между macOS и Android.

Инструменты для тестирования iOS приложений
Xcode
Платформы: macOS
Описание: интегрированная среда разработки iOS приложений.
Возможности:
- Просмотр и сохранение системных и консольных логов.
- Подключение к iOS девайсу через Wi-Fi.
- Снятие скриншотов.
- Установка, удаление и запуск симуляторов.
- Установка и удаление приложений.
- Написание автотестов с использование фреймворка XCUITest.

QuickTime Player
Платформы: macOS
Описание: системный мультимейдиный плеер.
Возможности:
- Воспроизведение множества различных типов файлов.
- Отображение экрана iOS устройства на компьютере.
- Запись видео с экрана.

iTools
Платформы: macOS, Windows
Стоимость: $34.95–69.95, в зависимости от тарифа
Описание: инструмент, который призван заменить работу iTunes и сделать работу с девайсом более удобной.
Возможности:
- Отслеживание статуса устройства.
- Создание бэкапов и возможность восстановления.
- Просмотр логов.
- Установка и удаление приложений.
- Управление мультимедиа на девайсе.
- Просмотр файловой системы.
- Отображение экрана устройства.
- Снятие скриншотов и видео.

iOS Console
Платформы: macOS
Описание: программа для просмотра консольных логов девайса с возможностью фильтрации.

Инструменты для тестирования API
Charles
Платформы: macOS, Linux, Windows
Стоимость: бесплатно с ограничениями или $50–700, в зависимости от тарифа
Описание: инструмент для мониторинга трафика.
Возможности:
- Проксирование трафика мобильных устройств и компьютера.
- Сохранение рабочих сеансов в файлы.
- Подмена параметров запроса и ответа.
- Подмена тела ответа из файла (на лету).
- Имитация разных типов соединения.
- Черные и белые списки для методов.
- Расстановка брейкпойнтов.
- Повторная отправка запросов.
- Просмотр параметров запросов и ответов в разных форматах данных.

Postman
Платформы: macOS, Linux, Windows
Описание: мощный инструмент для разработки и тестирования API.
Возможности:
- Создание проектов с возможностью совместной работы.
- Создание коллекций запросов с внутренней структурой из папок.
- Отправка запросов, просмотр ответов.
- Поддержка синтаксиса GraphQL.
- Просмотр логов и дебаггинг.
- Настройка отдельных окружений с созданием глобальных переменных.
- Создание локальных переменных.
- Запуск скриптов.
- Написание автотестов с использованием JavaScript.
- Запуск автотестов по расписанию, мониторинг выполнения.
- Запуск тест-ранов (цепочки запросов).
- Создание mock-серверов.
- Экспорт и импорт коллекций.

Newman
Платформы: macOS, Linux, Windows
Описание: консольная утилита для тестирования коллекций Postman.
Возможности:
- Запуск коллекций из командной строки.
- Интеграция с системами CI (Jenkins, Travis CI) и Docker.
Insomnia
Платформы: macOS, Linux, Windows
Описание: REST-клиент для разработки и тестирования API.
Возможности:
- Создание структуры запросов из проектов и вложенных папок.
- Отправка запросов, просмотр ответов в разных форматах (изображения, HTML, PDF).
- Настройка отдельных окружений с созданием глобальных переменных.
- Создание локальных переменных.
- Использование тегов для генерирования данных.
- Поддержка синтаксиса GraphQL.
- Экспорт и импорт данных.
- Возможность использования и создания плагинов.

Paw
Платформы: macOS
Стоимость: $49.99
Описание: HTTP-клиент для разработки и тестирования API.
Возможности:
- Создание проектов с возможностью совместной работы.
- Создание иерархической структуры запросов.
- Отправка запросов, просмотр ответов в разных форматах (изображения, HTML, PDF).
- Настройка отдельных окружений с созданием переменных.
- Экспорт и импорт данных.
- Возможность использования и создания расширений.

Инструменты общего назначения
Snagit
Платформы: macOS, Windows
Стоимость: $49.95 для индивидуальной лицензии (2 компьютера)
Описание: многофункциональный скриншотер. Один из лучших в своей категории.
Возможности:
- Разные режимы захвата: весь экран, отдельное окно, преобразование картинки в текст, веб-страница, меню и так далее.
- Снятие видео.
- Собственный редактор со множеством встроенных инструментов для работы с изображением и видео: рисование, наложение разнообразных иконок, идентификация текста и картинок на изображении с возможностью их редактировать, автозамена элементов на изображении упрощенными объектами и многое другое.
- Создание пресетов с возможностью установки шорткатов для разных режимов захвата и отправки файлов в какой-либо предзаданный сервис (Google Disc, Dropbox и так далее).
- Мгновенная отправка файлов с мобильного устройства на компьютер через Wi-Fi (нужно скачивать приложение на девайс и подключаться к прокси).

Pushbullet
Платформы: macOS, Windows, Web, Android, iOS
Стоимость: 229 ₽ для macOS, для остальных платформ — бесплатно
Описание: позволяет общаться между компьютером и всеми подключенными девайсами, подключенными к одному аккаунту (как правило, тестовой учетной записи).
Возможности:
- Отправка текста, ссылок, картинок и любых других файлов с компьютера на девайс и обратно.
- Отправка SMS с компьютера.
- Просмотр уведомлений девайса на компьютере.

Alfred
Платформы: macOS
Стоимость: £23 за текущую версию, £39 за бесплатное обновление на все новые версии
Описание: приложение для повышения продуктивности и автоматизации рабочих процессов. Представляет собой окно поиска на подобии Spotlight, только на стеройдах c более расширенным функционалом. Умеет практически все.
Возможности:
- Создание собственных workflow с использованием встроенных инструментов и языков программирования: начиная с открытия ссылок в браузере, заканчивая сложными интеграционными сценариями.
- Поиск по файловой системой macOS с гибкой настройкой.
- Поиск по закладкам браузера.
- Расширенный буфер обмена.
- Создание текстовых шаблонов.
- Выполнение системных команд.
- Удаленное управление macOS с iPhone при помощи приложения Alfred Remote.
Множество полезных workflow здесь и здесь.


TextExpander
Платформы: macOS, Windows, iOS
Стоимость: $3.33 за год персонального использования, $7.96 за год использования для команды
Описание: инструмент для создания шаблонов и их вставки.
Возможности:
- Создание текстовых шаблонов.
- Создание шаблонов с использованием форматированного текста и картинок.
- Создание шаблонов с использованием скриптовых языков (Shell Script, AppleScript, JavaScript).


Dash
Платформы: macOS, iOS
Описание: браузер документации API и инструмент для создания фрагментов кода.
Возможности:
- Формирование собственной библиотеки из структурированных наборов документации для разных инструментов (языки программирования, фреймворки, различные системы) и чит-листов (команды, сочетания клавиш) с возможностью просмотра и поиска.
- Создание собственных наборов документации и чит-листов.
- Создание фрагментов кода для разных представлений данных.
- Большое количество интеграций с другими инструментами.


Заключение
Используя эти инструменты по отдельности и вместе, можно автоматизировать свой рабочий процесс и направить освободившееся время на выполнение более важных и сложных задач. Не пренебрегайте использованием средств автоматизации и используйте их с умом.