Бегущий Ведущий. Всем Ios-Пользователям Тестовой Фермы

В iOS-приложении «Авито» есть куча UI-тестов — вы наверняка это уже знаете, ведь мы о них постоянно говорим.

Это позволяет нам выпускать релизы раз в неделю, а каждые две недели мы проводим регрессионное тестирование с ручными проверками.

Между ними выпускается приложение, которое тестируется только нашими UI и модульными тестами.

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

Это доступно в нашем репозитории Github.



Что с нашими тестами?

Количество тестов в приложении Авито постоянно растёт. Сейчас там больше всего — 1500 штук — быстрых компонентных UI-тестов.

Они сочетают в себе интерактивность тестов XCUI со скоростью модульных тестов.

По сути, это изолированные экраны, но с интерактивными тестами их работы.

Мы запускаем тесты пользовательского интерфейса для каждого запроса на включение в двух версиях iOS — самой старой поддерживаемой и самой новой.

То есть реально запускается 3000 тестов.

Но мы уже год отказались от XCUI-тестов на пул-реквестах: они завязаны на бэкенде (сквозные), а он любит жить своей жизнью.

В момент запуска может обновиться СУБД или выкатиться новые версии сервисов, которые всё ломают. Однако тесты XCUI запускаются при выпуске, а также каждый вечер, а отчеты доставляются команде утром.

Таких тестов осталось около 600. Даже если представить, что каждый компонентный тест длится в среднем 3 секунды, то 3000 х 3 даст 9000 секунд. А это 2,5 часа.

Однако наша тестовая сборка занимает около 15 минут.

Бегун-испытатель, ведущий

Скорость сборки достигается с помощью нашего бегун-тестировщик .

Он:

  • Управляет симуляторами на нашей ферме компьютеров Apple.
  • Организует очередь тестов.

  • Пишет аналитику по выполнению тестов в Grafana.
  • Выполняет необходимое количество перезапусков.

  • Запускает тесты только там, где они могут пройти.

    Например, только на компьютерах с установленным симулятором и необходимой версией Xcode.

  • Выделяет максимально возможные ресурсы для выполнения набора тестов в зависимости от приоритета.

  • Интегрирует результаты тестовых запусков в нашу инфраструктуру: систему хранения тестов и отчетности.



Точные цифры

Наши компонентные тесты на PR длятся в общей сложности 6 часов: по крайней мере, столько времени потребуется для их запуска одному минивэну с одним симулятором.

Фактически сборка происходит за 15 минут. Наши 600 комплексных тестов XCUI занимают в общей сложности 41 час.

Они работают на четырех разных версиях iOS, и фактически все распараллеливается и выполняется за 50 минут.

Что вам нужно, чтобы начать использовать Emcee дома

Нужный:
  • Желание понимать новое.

    Мы проделали большую работу, чтобы сделать все проще для вас.

  • Компьютеры Mac. Мы используем Mac mini, потому что их можно каким-то образом разместить в стойке.

    Но вы также можете использовать ноутбуки, если у вас есть свободные.

    Вы также можете арендовать технику Apple у поставщиков.

  • Ваше iOS-приложение с тестами.

Мы написали краткое руководство от того, как быстро вы сможете начать.



Кому подходит ведущий?

Смело попробуйте Emcee, если:
  • Если вы хотите сократить время вывода вашего приложения на рынок, вы полагаетесь на автоматизированные тесты.

  • Тесты начинают отнимать значительное количество времени из-за регрессий и запросов на включение, и теперь вы ищете способ их ускорить.

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

  • Люблю крутые технологии и хочу сотрудничать с инженерами Авито.



Что говорят те, кто уже пользуется Emcee

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

Когда у нас было около 150 тестов, их прогон занимал около 10 минут на одном мини.

В нашем случае это нормально.

Когда количество тестов увеличилось до 500+, время выполнения увеличилось до 30-35 минут. Мы поняли, что этого времени достаточно, чтобы получить обратную связь о состоянии приложения.

Мы рассматривали варианты перехода в облако для более быстрого проведения тестов, но стоимость поднятия экземпляров MacOS подтолкнула нас к поиску альтернатив.

В итоге мы пришли к ведущему с Авито: ставим ферму из 5 машин, на которых запускаем 5 симуляторов.

В результате время тестового запуска сократилось до 10-12 минут».

Антон из Болта

«Когда мы начали активно внедрять UI-тесты для ускорения регрессионного тестирования, мы столкнулись с тем, что их выполнение занимает довольно много времени.

В какой-то момент запуск тестов стал занимать полтора часа! Emcee позволил распараллелить тесты на нескольких Mac mini и значительно сократить время выполнения».

Евгений из ivi

«Проект автотестирования iOS стартовал в условиях, когда приложение уже разрослось и регрессия была узким местом релизов.

Они выпускали приложение не чаще раза в месяц и тонули в волнах регресса.

Для проведения тестов я хотел построить надежную собственную инфраструктуру на основе коробочного решения и желательно с открытым исходным кодом.

Мы нашли только один такой инструмент — Emcee. Пришлось немного повозиться с реализацией, но настроишь один раз, а дальше все работает как часы.

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

Сейчас у нас около 800 e2e-тестов iOS, которые выполняются за 2-3 часа.

Наш цикл релизов сократился с 4-5 недель до 2, и тестировщикам стало гораздо проще выделять время на дополнительные действия в виде улучшения процессов и разработки тестовой документации».

Андрей из Space307



Мы готовы поддержать вас

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

Постучите в нашу дверь на специальной целевой странице или в телеграмме.

Теги: #Разработка для iOS #с открытым исходным кодом #Тестирование мобильных приложений #разработка для iOS #тестирование пользовательского интерфейса #юнит-тестирование #emcee

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

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.