Автоматизация тестирования на проектах
В этой статье мы рассмотрим работу наших специалистов в системе заказчика.
Система заказчика представляет собой набор сервисов по работе с биржевыми инструментами, проведением сделок и отслеживанием участников.
Главные задачи перед командой автоматизации:
1) Вывести список критических тестов;
2) Написать базовые фреймворк для работы с UI и API;
3) Поддерживать тесты после выхода обновлений.
Первые шаги в проекте
Наша команда совместно с функциональными тестировщиками выделили пул критических тестов, которые гоняются чаще всего.
Дальше мы начали конструировать фреймворк под специфику CI заказчика. Для стабильной работы требовалось:
1) Выполнять подготовку стенда после каждого деплоя;
2) Проверять запущенные сервисы;
3) Подключаться к нескольким БД и проводить скрипты для подготовки данных;
4) Управлять сделками через API и UI смежных систем
Создание фреймворка
Сперва наша команда написала расширяемый фреймворк, и настроила jenkins для регулярных зхапусков. После этих действий все коллеги смогли наблюдать за продвижением автотестов и пользоваться отчетами для сверки своих мерж реквестов.
Для разработки тестов решили использовать следующие инструменты:
1) Java 17;
2) Selenium;
3) Retrofit;
4) Hibernate;
5) TestNg;
6) Allure.
Данные этап не занял много времени и сил.
Независимость проекта
Следующий шаг — получить независимость от DevOps инженеров на этапе подготовки стенда
Стенды у заказчика базируются на Windows Server, для запуска и проверки всех сервисов мы использовали скрипты старта и остановки и специальный UI интерфейс для проверки снепшотов, обновления бд и очистки.
К сожалению все автоматизировать нам не удалось и после каждого обновления часть подгтовительных действий нужно выполнять руками, какрас через вспомогательный UI интерфейс.
Распространение
После всех CI/CD задач необходимо было покрыть как можно больше тестов критического приоритета.
Этот этап занял у нас больше всего времени.
Так как в критических набор входят по 1-3 теста с каждого раздела, то для нас все тесты были как новые и представляли разную логику.
Если учесть что мы работали с биржевым инструментом, то очень много времени уходила на разбор документации, общеения с аналитиками и тестировщиками.
Но с каждым тестом сокращалось время регресса и добавлялась новая логика в фреймворк, что позволило гораздо быстрее написать последующие наборы тестов высокого и среднего приоритетов.
Расширения систем
Как и любой продукт наша система постоянно дополняась новыми инструментами, и некоторые из них не так качественно проверялись ручными тестировщиками.
Мы старались сразу забирать все проверки себе, и покрывать все автотестами.
Одно из преимуществ автотестирования не только в скоращении времени регресса, но и в очень детальном прохождении теста во время его разработки.
Так и с нашими новыми система получилось найти много багов во время разработки и отладки самих тестов.
Поддержка
Сейчас основная часть команды автоматизации занимается поддержкой текущих тестов и проработкой логики на dev стендах разработчика, чтобы при мерже на предпродуктовый полигон все фичи были проверены и оставались только проверки интеграций.