В мире Android часто случается, что приложения на разных устройствах работают по-разному.
Ладно, если бы можно было протестировать поведение на разных версиях Андроида на эмуляторе, и на этом бы все и закончилось.
Но, во-первых, эмулятор — это еще не настоящее устройство, и тестирование может быть ненадежным.
А во-вторых, оболочки от сторонних производителей тоже влияют на работу приложений.
Запастись тестовыми устройствами в офисе у вас также не получится, а ехать из удаленки в офис, чтобы протестировать одну функцию на каком-нибудь Xiaomi, не очень-то и хочется.
Как это было бы в идеале.
В идеале я хочу записать какой-нибудь тестовый пример, просто коснувшись его один раз на телефоне, а затем запустить удаленно, на разных устройствах одновременно.
И пусть это будет сделано.
И оказывается, что это возможно.
Тестовая лаборатория Firebase - довольно занимательная вещь.
Вот что написано в документе Google:
Firebase Test Lab — это облачная среда тестирования приложений, которая позволяет тестировать ваше приложение на различных устройствах и конфигурациях, чтобы лучше понять, как оно будет работать в руках реальных пользователей.Основные возможности Тестовой Лаборатории:Тестовая лаборатория использует реальные производственные устройства, работающие в центре обработки данных Google, для тестирования вашего приложения.
- Робо-тесты.
Вы загружаете свой apk-файл и выбираете устройство, на котором будет проводиться тест. «Робот» сам будет тестировать приложение, нажимать на все кнопки, которые видит, и вводить разные значения в поля ввода.
Он увидит, что происходит, и пришлет обо всем отчет.
- Если вам нужно протестировать конкретный тестовый пример, вы можете написать сценарий через Android Studio, загрузить файл сценария и запустить его.
- Когда есть необходимость протестировать конкретные значения, действия (нажатие/игнорирование конкретной кнопки, значения в поле ввода, переход по глубокой ссылке) во время автотеста — все это можно настроить и сохранить в пресетах.
Также необходимо сразу оговориться, что при бесплатном использовании сервиса существуют ограничения – 5 тестов на физических устройствах и 10 тестов на виртуальных устройствах в день.
Недостаточно, чтобы пользоваться постоянно, но в определенных случаях это будет удобно.
Что мы получим в результате?
После завершения тестирования, которое может занять полчаса, в зависимости от количества ui-элементов и длины потока (тест может быть ограничен по времени перед запуском), мы можем посмотреть отчет. Там будут скриншоты и видео, показывающее, как проходило тестирование, где робот нажимал, куда ходил, ошибки, если они есть, с местом их возникновения и stacktrace (сразу закрепляем баг на разработчике)).При этом разработчик сразу видит файл и строку кода, где произошло исключение.
Комфортный.
ХОРОШО.
Для интересующихся далее инструкция на случай, если приложение требует авторизации, otp-кода и других настроек тестирования, ограничений куда заходить и куда не заходить.
Чтобы «робот» прошел авторизацию, вам необходимо предоставить данные для входа в свой (тестовый) аккаунт. Это можно сделать 2 способами:
- записать скрипт Test Lab Robo Script и во время записи ввести данные для входа (или, в принципе, с помощью этого же скрипта записать конкретный тестовый пример);
- найти поля ввода по id и указать их значения в пресетах.
Робо-скрипт
Чтобы записать тестовый пример или «показать роботу», как пройти авторизацию, перейдем в Android Studio. В вашем проекте уже должна быть подключена Firebase. Если нет, то все очень четко описано в документах Google, проблем возникнуть не должно.https://firebase.google.com/docs/android/setup
- Давайте выберем устройство, на котором будем запускать приложение и запишем скрипт.
- Откройте Инструменты > 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
-
Аутентификация В Сети
19 Oct, 24 -
Фарминг В Социальных Сетях
19 Oct, 24 -
Как Стать Независимым Разработчиком Игр
19 Oct, 24