
#Искусственный интеллект
#Разработка
Внедрение ИИ в процессы тестирования ПО: как мы создали «Ассистента тестировщика» в «ДОМ.РФ Технологии»
01.09.2025

27.03.2025
#Разработка
Всем привет! На связи команда тестирования производительности структурного подразделения «Тестирование». Сегодня расскажем, как нам удалось автоматизировать рутинный процесс запуска регрессионных нагрузочных тестов и обработки результатов и передать эту активность продуктовым командам с помощью Telegram-бота.
Мы проводим различные виды тестирования производительности: нагрузочное, стресс-тестирование, тестирование стабильности и отказоустойчивости. Наиболее частой и рутинной задачей является регрессионное нагрузочное тестирование (НТ).
После успешного первичного НТ эталонные результаты фиксируются. Последующие регрессионные прогоны должны сравнивать новые результаты с эталоном, чтобы оперативно выявлять деградацию производительности.
Изначально процесс запуска регрессионного НТ был полностью ручным и выглядел так:
При росте количества продуктов небольшая команда инженеров стала узким местом. Возникла потребность автоматизировать этот процесс, чтобы:
Мы рассмотрели классический вариант интеграции запуска нагрузочных тестов в пайплайн CI/CD в GitLab. Однако он не подошел по двум причинам:
Было принято решение реализовать решение с «кнопочным» запуском. В качестве интерфейса для запусков выбран Telegram — так как это основное средство коммуникации продуктовых команд, что обеспечивало прозрачность и простоту использования.
Решение было разбито на два ключевых модуля, взаимодействующих через REST API:
1. Интерфейс (Frontend): Telegram-бот, реализованный на Python с использованием библиотеки Telebot и набора прикладных библиотек, отвечает за:
2. Серверная часть (Backend): REST API сервис на Java использующий библиотеку mockserver и набор прикладных библиотек, отвечающий за:
На уровне самих нагрузочных скриптов в сценарии были добавлены SetUp и TearDown Thread Groups, которые через REST API уведомляют бэкенд о начале и окончании теста и вызывают технические методы серверной части решения.

Мы сознательно отказались от полноценной интеграции в CI/CD на данном этапе. Наше решение предлагает несколько преимуществ для конкретной задачи:
Внедрение «бота-нагрузочника» позволило нам успешно решить первоначальную задачу:
Также дополнительно удалось повысить осведомленность функциональных тестировщиков и разработчиков о работе нагрузочных тестов.
В перспективе мы планируем обучить продуктовые команды самостоятельному обновлению регрессионных сценариев, что полностью закроет цикл разработки с точки зрения контроля производительности.