Перфоманс Лаб

автотестирование
20 мая, 2024

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

Время чтения: 9 мин.
20 мая, 2024
Автор:
Ева Реген

Как автоматизировать большой и сложный проект? Если коротко — доверить вопрос специалистам, которые точно знают, что делать. Рассказываем, как внедряли Allure TestOps и помогали заказчику автоматизировать тест-кейсы сразу для 11 сайтов.

О проекте

Клиент

Разработчик автоматизированных решений

Индустрия

Туризм

Продукт

Платформа электронной коммерции для авиакомпаний

Результаты

  • Теперь все платформы клиента, несмотря на отличия между ними, легко автоматизировать по готовому сценарию.
  • Наша команда настроила CI/CD.
  • Скорость прогона тестов увеличилась в 4 раза.

Исходные данные

Заказчик проекта специализируется на разработке автоматизированных решений в сфере туризма — он предоставляет сервисы для других компаний по внутренним перелетам. К нему обращаются клиенты из разных стран: России, Казахстана, Грузии и Армении.

Компания хотела автоматизировать тестирование, чтобы снизить затраты на ресурсы для ручного тестирования. Перед командой «Перфоманс Лаб» стояла задача автоматизировать список тест-кейсов на 11 платформах: одна платформа = один конкретный заказчик.

Как следствие — глобальной целью «Перфоманс Лаб» стало создать удобную и технологичную инфраструктуру для автоматизации тестирования продукта.
​В качестве фундаментального решения мы решили внедрить платформу Allure TestOps, которая одновременно сочетает в себе функции:

  • системы управления тестированием;
  • системы для запуска автотестов и построения отчетности.

Гибкое решение для единообразия платформ

Мы актуализировали ручные тесты для дальнейшей автоматизации, настроили CI-инструмент и развернули Allure TestOps.

На первом этапе мы решили автоматизировать 70 тестов, которые нужно было выполнить на 11 сайтах-платформах. Проект был рассчитан для Web UI.

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

«Допустим, мы идем по тест-кейсу: выбираем рейс, потом место, потом обед. На разных платформах этот порядок менялся — сначала обед, потом распределение мест. Пришлось писать код, который бы работал везде. Нас выручили паттерны программирования».

foto profilya
Герман Г.
Младший специалист по обеспечению качества

Наша команда решила взять одну платформу за эталонную, а остальные адаптировать под нее. Специалистам удалось спроектировать реализацию таким образом, чтобы не дублировать код и не переписывать тесты для всех платформ. Название платформы использовалось как параметр — и тест выполнял шаги именно для нее.

Особенности автоматизации тест-кейсов

Мы также столкнулись с рядом нюансов при автоматизации конкретных тест-кейсов. Например, в некоторых из них нужно было учитывать работу с почтой, а у заказчика не было готового шаблона. Мы самостоятельно регистрировали тестовые аккаунты и интегрировали тестовый проект с Google API для получения списка почтовых сообщений. При этом выяснилось, что Google ставит определенные условия, в тот момент невозможные для заказчика. В итоге мы использовали «Яндекс» и Mail.Ru с открытыми API.

В паре кейсов мы также обнаружили другую проблему со ссылкой, с помощью которой формируется готовый заказ. На некоторых платформах эта ссылка не создавалась. Поговорив с заказчиком, мы выяснили, что сайты еще находятся в доработке, — поэтому нам пришлось вносить изменения в последний момент.

А в последнюю неделю заказчик внезапно внес изменения в проект, из-за чего треть тестов «отвалилась» — но мы успели всё исправить в срок.

По итогу мы получили возможность подключать остальные платформы с минимальным написанием кода. А платформы, которые отличались от эталонной, изменялись только в тех шагах, где это было необходимо. Ранее при каких-либо изменениях в функциональности тесты падали — но теперь их стало легко актуализировать.

Внедрение CI/CD для тестирования

Следующим этапом стало подключение реализованного проекта к CI/CD для тестирования Web UI. Так как сотрудника в должности DevOps у заказчика не было, команде «Перфоманс Лаб» пришлось самостоятельно настраивать все интеграции (GitLab, TestOps), а также всю инфраструктуру для успешной автоматизации запуска тестов.

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

Итоги

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

Теперь любую новую платформу клиент может автоматизировать благодаря предложенному нами сценарию — и встроить пайплайн в CI/CD: минимум действий для максимального результата.

А главное, мы справились с задачей в самые короткие сроки, успев к дедлайну — несмотря на то, что из-за сложностей со стороны заказчика работа оказалась объемнее заявленной в несколько раз.

Заказчик, довольный результатами, вскоре снова обратился к нам, чтобы сделать работу тест-кейсов многопоточной, запараллелить 140 тест-кейсов. Мы помогли и с этим: настроили как сами кейсы, так и отчеты по их прохождению. Запуск в параллельном режиме позволил сократить время проведения тестов в 4 раза.

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

«Для этого мы обратились к WireMock. После настройки запросов, ответов, режимов заказчик не просто понял, насколько это облегчает проведение регресса приложения, но и увидел это на деле — в связи с чем был очень доволен».

foto profilya
Алексей Р.
Тест-менеджер

Как итог — мы предоставили клиенту надежный проект автоматизации тестирования: компания получила актуальную тестовую модель, которая позволяет ей сократить TTM и повысить качество разрабатываемого продукта.

Автоматизируйте тестирование
с «Перфоманс Лаб»

Ускорьте релиз без лишних трат