Статья публикуется от имени Иванова Андрея и Батеевой Екатерины, neifmetus
Автоматизация мобильных приложений довольно молодая сфера: фреймворков много и многие проекты сталкиваются с проблемой выбора самого «быстрого, стабильного, простого в использовании». Также и мы около двух лет назад стояли перед выбором нового инструмента автоматизации тестирования Android приложений.
Все популярные инструменты так или иначе базировались на UIAutomator и Espresso, поэтому мы решили затестить их в чистом виде и сравнить с теми же Appium (самый популярный) и
seeTest (использовался до этого, лучший среди платных на тот момент).
Из достоинств Appium можно выделить привычный многим WebDriver API, возможность использования большинства популярных языков и библиотек. Кроме этого, он широко используется во многих компаниях и позволяет писать тесты сразу под платформы iOS и Android. И, наконец, это бесплатное коробочное решение — что может быть лучше?
Так думали мы, пока не обнаружили следующие недостатки:
- низкая стабильность Appium Server
- нельзя взаимодействовать с публичными методами Activity (в 2018 году про создание backdoor в Appium рассказал в своей статье Николай Абалов из Badoo, прочитать можно здесь)
- сильно уступает по скорости выполнения тестов Espresso
Для нас эти моменты были критичными, поэтому было принято решение собрать свой набор инструментов вокруг Espresso для построения экосистемы тестирования мобильных приложений.
Итак, фреймворк был выбран, оставалось найти остальные компоненты:
- Runner — должен позволять запускать тесты параллельно и конфигурировать пулы устройств
- Reporter — должен предоставлять удобочитаемый отчет, которым мог бы пользоваться любой член команды