Тестовая Лаборатория Firebase. Автотесты Без Кода На Физических Устройствах

В мире Android часто случается, что приложения на разных устройствах работают по-разному.

Ладно, если бы можно было протестировать поведение на разных версиях Андроида на эмуляторе, и на этом бы все и закончилось.

Но, во-первых, эмулятор — это еще не настоящее устройство, и тестирование может быть ненадежным.

А во-вторых, оболочки от сторонних производителей тоже влияют на работу приложений.

Запастись тестовыми устройствами в офисе у вас также не получится, а ехать из удаленки в офис, чтобы протестировать одну функцию на каком-нибудь Xiaomi, не очень-то и хочется.

Как это было бы в идеале.

В идеале я хочу записать какой-нибудь тестовый пример, просто коснувшись его один раз на телефоне, а затем запустить удаленно, на разных устройствах одновременно.

И пусть это будет сделано.

И оказывается, что это возможно.

Тестовая лаборатория Firebase - довольно занимательная вещь.

Вот что написано в документе Google:

Firebase Test Lab — это облачная среда тестирования приложений, которая позволяет тестировать ваше приложение на различных устройствах и конфигурациях, чтобы лучше понять, как оно будет работать в руках реальных пользователей.

Тестовая лаборатория использует реальные производственные устройства, работающие в центре обработки данных Google, для тестирования вашего приложения.

Основные возможности Тестовой Лаборатории:
  • Робо-тесты.

    Вы загружаете свой apk-файл и выбираете устройство, на котором будет проводиться тест. «Робот» сам будет тестировать приложение, нажимать на все кнопки, которые видит, и вводить разные значения в поля ввода.

    Он увидит, что происходит, и пришлет обо всем отчет.

  • Если вам нужно протестировать конкретный тестовый пример, вы можете написать сценарий через Android Studio, загрузить файл сценария и запустить его.

  • Когда есть необходимость протестировать конкретные значения, действия (нажатие/игнорирование конкретной кнопки, значения в поле ввода, переход по глубокой ссылке) во время автотеста — все это можно настроить и сохранить в пресетах.

Инструкции о том, как все это настроить, приведены ниже.

Также необходимо сразу оговориться, что при бесплатном использовании сервиса существуют ограничения – 5 тестов на физических устройствах и 10 тестов на виртуальных устройствах в день.

Недостаточно, чтобы пользоваться постоянно, но в определенных случаях это будет удобно.



Что мы получим в результате?

После завершения тестирования, которое может занять полчаса, в зависимости от количества ui-элементов и длины потока (тест может быть ограничен по времени перед запуском), мы можем посмотреть отчет. Там будут скриншоты и видео, показывающее, как проходило тестирование, где робот нажимал, куда ходил, ошибки, если они есть, с местом их возникновения и stacktrace (сразу закрепляем баг на разработчике)).

При этом разработчик сразу видит файл и строку кода, где произошло исключение.

Комфортный.



Тестовая лаборатория Firebase. Автотесты без кода на физических устройствах

ХОРОШО.

Для интересующихся далее инструкция на случай, если приложение требует авторизации, otp-кода и других настроек тестирования, ограничений куда заходить и куда не заходить.

Чтобы «робот» прошел авторизацию, вам необходимо предоставить данные для входа в свой (тестовый) аккаунт. Это можно сделать 2 способами:

  • записать скрипт Test Lab Robo Script и во время записи ввести данные для входа (или, в принципе, с помощью этого же скрипта записать конкретный тестовый пример);
  • найти поля ввода по id и указать их значения в пресетах.

Давайте разберемся сейчас.



Робо-скрипт

Чтобы записать тестовый пример или «показать роботу», как пройти авторизацию, перейдем в Android Studio. В вашем проекте уже должна быть подключена Firebase. Если нет, то все очень четко описано в документах Google, проблем возникнуть не должно.

https://firebase.google.com/docs/android/setup

  • Давайте выберем устройство, на котором будем запускать приложение и запишем скрипт.
  • Откройте Инструменты > Firebase > Тестовая лаборатория.

  • Далее — запишите сценарий робота и используйте его для проведения теста робота.

    Запиши это!

  • Приложение запускается на выбранном устройстве, и в студии открывается окно, в котором отображаются записанные действия.

    Запишите необходимый тестовый пример и нажмите «ОК».

    Сохраните файл сценария.



Тестовая лаборатория Firebase. Автотесты без кода на физических устройствах

Помимо скрипта вам также понадобится сборка приложения.

Дальше, откройте консоль Firebase В самой консоли слева выберите Test Lab. Запустите Тест > Робо.

В первое поле поместим apk файл приложения, во второе - записанный скрипт. Окей, дальше выбираем устройства, на которых будем тестировать, можем указать ограничение по времени выполнения и жмем старт. «Робот» запустит скрипт на нужном экране, с его помощью пройдет авторизацию, а затем перейдет что-то тестировать.

То же самое произойдет и с тестовым примером, записанным в скрипте.

Если вам просто нужно провести автоматическое тестирование, без скрипта, просто чтобы Robo прошел само приложение - из всего перечисленного вам останется только собрать апк и закинуть его в консоль.

Однако в этом случае «робот» будет ходить, куда хочет/может. В зависимости от приложения оно может просто не найти никаких пользовательских элементов.

Кроме того, по опыту, его «отвлекает» анимация.

Впрочем, думаю, со временем доделают, попробовать в любом случае стоит - найдет, найдет.

Пресеты

Также в консоли перед запуском теста можно задавать значения для полей ввода, нажимая или игнорируя кнопки, находя их по id. Боюсь, что без базовых знаний Android-разработки (если вы тестировщик) в большом проекте будет сложно найти файл с нужным экраном и найти в нем этот самый id. Или вы можете попросить разработчика подсказать идентификатор того самого элемента пользовательского интерфейса.

Если вы все еще знаете id нужного элемента, то остается только указать id и действие для него в консоли.

Скажу дополнительно, что для пользовательских элементов ui (например, пользовательского поля ввода) нужно брать id стандартного EditText, скрытого под ним (или другого элемента, главное не id из макета экрана) , а идентификатор элемента в самом пользовательском макете).

е).

И да, с кастомными элементами могут возникнуть проблемы и робот просто не найдет вид. В этом случае лучше использовать первый вариант со скриптом.

Затем вы просто отправляете тот же APK в TestLab. И перед началом теста на экране выбора устройства для теста: Дополнительные параметры > Учетные данные тестовой учетной записи/директивы Robo (любые другие действия над элементами пользовательского интерфейса).

В названии ресурса - введите id, а рядом значение, нажмите или проигнорируйте.



Общий

Конечно, в TestLab тоже есть разные настройки, методы тестирования, тесты игр на Unity, приложений на IOS и т. д. Но, как по мне, основные, самые полезные возможности были описаны в статье.

За дополнительной информацией вы всегда можете обратиться к документации.

Всем послушных зеленых роботов ;) Теги: #Разработка Android #qa #Тестирование мобильных приложений #автотестирование #автотесты #тестирование качества #автоматизация контроля качества #инженер по автоматизации контроля качества #Firebase #тестовая лаборатория Firebase

Вместе с данным постом часто просматривают: