Применение ферм девайсов в тестировании мобильных приложений
Firebase Test Lab vs Microsoft App Center
Мы в Open Solutions максимально автоматизируем процесс тестирования в наших проектах. Это позволяет заказчику сэкономить деньги, а нам - помогает максимально полно проверить функционал разрабатываемого нами продукта. В случае с мобильными приложениями, мы пришли к выбору сервиса автоматизации после того, как выстраивали систему на базе локальных ресурсов. Но со временем это стало неудобно из-за необходимости поддерживать актуальный парк устройств и заниматься их администрированием. Поэтому мы перешли на облачные фермы мобильных устройств и выбирали между Firebase Test Lab и Microsoft App Center. Об этом выборе мы и хотим рассказать в данной статье.
Что такое удаленные фермы устройств и зачем они нужны?
С каждым годом различных моделей и производителей мобильных устройств становится все больше и больше. Основное направление нашей компании - это заказная разработка ПО и нам попросту не выгодно покупать и содержать все модели телефонов. Нам на помощь пришли более крупные корпорации, такие как Microsoft или Google, а также сами производители мобильных устройств.
Они содержат у себя все эти модели телефонов с различными версиями ОС , а клиентам предоставляют доступ на запуск приложений и автотестов на них за определенную плату. Это и есть удаленные фермы мобильных устройств. В рамках данной статьи рассмотрим их применение для запусков автотестов.
Какие преимущества дают удаленные фермы:
- можно тестировать на большом пуле смартфонов;
- нет необходимости покупать и обслуживать необходимые модели устройств;
- предоставляемые устройства, как правило, физические.
Но без недостатков тоже не обойтись:
- зачастую удаленные фермы предъявляют достаточно узкие требования по технологиям, с использованием которых должны быть написаны автотесты;
- информация, предоставляемая по результатам прогона, ограничена.
Почему именно Firebase Test Lab и Microsoft App Center?
При выборе удаленной фермы мы исходили из практических соображений, поэтому выбирали из двух:
- Firebase Test Lab. Потому что мы уже работаем в Firebase. Мы загружаем наши тестовые сборки приложений и собираем статистику. Удобно держать результаты автотестов в той же консоли. Достаточно зайти в одну систему и ты получишь полную информацию о своем приложении.
- Microsoft App Center. Наша фирма является сертифицированным партнером Microsoft. Благодаря этому, нам доступна существенная скидка на использование всех сервисов, в том числе и App Center. А самый главный плюс - это большой выбор физических устройств.
Firebase Test Lab
Данный сервис предоставляется 11 виртуальных и 139 физических устройств для тестирования. Firebase дает возможность руками запускать 10 тестов на виртуальных и 5 тестов на физических устройствах в день совершенно бесплатно. За запуски через CI или увеличение доступных запусков в день придется платить.
Помимо запуска рукописных тестов, о них поговорим чуть позже, Test Lab умеет делать Robo-тесты. По сути это некое подобие monkey-тестов. Только здесь есть возможность задать тестовое окружение и, как говорится в документации, на одних и тех же данных тест будет выполнять одни и те же действия, что позволит проверить исправление ошибок.
К автотестам Firebase предъявляет ряд требований. Такие тесты должны быть написаны с использованием следующих фреймворков:
- Grandle + JUnit + UIAutomator или Espresso для Android. UIAutomator используется для тестирования методом черного ящика. Espresso - белого.
- XCUITests для iOS.
Основные сравнительные эксперименты мы проводили в части тестов на Android приложениях. Тестирование МП реализовывали методом черного ящика, поэтому выбрали следующий набор технологий: Grandle + JUnit + UIAutomator. До этого мы не были знакомы с UIAutomator независимо от Appium. Но разобраться получилось довольно быстро. Написание простенького теста на авторизацию с использованием PageObjects и отладка запусков в Firebase заняло около 3 дней.
Данные, которые мы получили по результатам прогона теста:
- Список сценариев, которые выполнялись во время прогона.
- Видео прогона.
- Логи устройства.
- Сведения о производительности.
Работа в Firebase Test Lab показалась довольно удобной, отчетность по результатам тестирования достаточно полная. Единственное - не хватало логов самих тестов дополнительно к логам телефона.
Microsoft App Center
App Center дает возможность тестировать на 374 смартфонах и 54 планшетах. Все устройства физические. На изучение инструмента дается пробный бесплатный период длиной в 30 дней. Далее начинает взиматься ежемесячная плата. Никаких ограничений по количеству устройств или количеству запусков в день нет.
Автотесты для запуска через App Center можно писать с использованием следующих фреймворков:
- Maven + JUnit + Appium.
- XCUITests для iOS.
С этим подходом к тестам мы уже были знакомы и написание теста на авторизацию заняло пару часов. Настроить запуск в App Center, также не составило труда, у сервиса хорошо написана документация, а интерфейс довольно интуитивен.
Данные, которые мы получили по результатам прогона теста:
- Список сценариев, которые выполнялись во время прогона.
- Скрины с ошибками и по окончанию теста.
- Логи устройства.
- Логи самих тестов.
- Логи Appium.
- Сведения о производительности(доступны не для всех устройств).
Фреймворки, работу которых поддерживает App Center, для нас оказались более привычными и знакомыми. Данные по результатам предоставляются довольно полные. Нет видео прогона, но при наличии логов тестов, оно не так критично. Наличие и количество скриншотов регулируется программно, что тоже очень удобно.
Есть один недостаток, с которым мы столкнулись уже в последующей работе: для тестов XCUITests логи самих тестов почему-то не пишутся. Сейчас активно общаемся с поддержкой сервиса. Скорее всего проблема связана с настройками тестов, уверены что она решится в ближайшее время.
Выводы
Оба рассмотренных сервиса предлагают довольно широкий спектр устройств и подробную информацию о результатах тестирования. Основными критериями выбора для нас был опыт работы автоматизатора с поддерживаемыми фреймворками и стоимость сервиса.
Мы остановили свой выбор на Microsoft App Center, потому что фреймворки оказались более удобными и знакомыми, а за счет того, что Open Solutions является партнером Microsoft сервис получается для нас очень выгодным.
Надеемся, статья была полезной и помогла вам решиться использовать удаленные фермы устройств или упростила выбор удобного для вас сервиса.
Если у вас есть опыт использования ферм - поделитесь, пожалуйста, своим экспириенсом, мы будем очень благодарны!
Анастасия, ведущий тестировщик, Open Solutions
что по деньгам?
У обеих компаний очень широкий спектр вариантов. Если резюмировать, то:
Firebase от 300$ за 90 дней
Appcenter от 40$/месяц
Подробнее тут:
https://cloud.google.com/free и https://docs.microsoft.com/ru-ru/appcenter/general/pricing соответственно.
Комментарий недоступен
Подобные ограничения если и есть, то не документированы. У нас был кейс когда в Appcenter не у всех iOS-устройств писались логи, но техподдержка быстро отвечает и исправляет подобные баги.
У ряда поставщиков есть бесплатный 30-дневный период для максимальной и честной проверки функционала и надежности фермы, можно им воспользоваться перед принятием решения.