UI-автоматизация веб-портала
En
Проекты Вакансии Блог

Автоматизация без сбоев: как мы улучшили UI-тестирование

UI-автоматизация на проекте находилась в нестабильном состоянии:

  • архитектура фреймворка была построена с нарушением иерархии компонентов;

  • фреймворк Playwright использовался некорректно — применялись явные паузы вместо встроенных механизмов ожидания;

  • нестабильные способы взаимодействия с DOM.

Это порождало flaky-тесты (мигающие/нестабильные тесты) и регулярные ложные падения, подрывавшие доверие к автоматизации. Наш SDET-лид провёл архитектурный рефакторинг:

  • выстроил новую компонентную модель;

  • мигрировал существующие тесты без остановки процесса;

  • кратно ускорил написание новых автотестов.

Клиент

Энтерпрайз веб-портал — пользовательский веб-интерфейс для администраторов СУБД (высокая плотность таблиц, форм, модальных окон, минимум анимаций).

Задача

Бизнес-задачи

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

  • Сократить время регрессионного прогона, высвободив ресурс команды автоматизации на наращивание покрытия.

Задача в контексте разработки

Устранить первопричины flaky-тестов (мигающих/нестабильных тестов):

  • явные паузы (time.sleep);

  • race conditions (состояние гонки);

  • зависимость от глобального состояния.

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

2 недели → 20 часов
время регрессионного прогона
3 автотеста в день
скорость разработки новых тестов
50%
UI тест-кейсов автоматизировано
0
явных time.sleep() в коде после рефакторинга

Решение

Что планировали сделать

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

Гипотезы

Главная причина flaky-тестов — не сам инструмент Playwright, а его некорректное использование. Если внедрить семантические локаторы через программный интерфейс Locator API и заменить явные паузы на встроенные механизмы ожидания и assertions, детерминизм тестов вырастет до 95%+.

Почему решали именно так

Постепенное «подклеивание» старой архитектуры только увеличило бы технический долг. Требовалось создать новый «скелет» фреймворка (BaseComponent, инжекция Page через конструктор) и перевести на него тесты модулями, гарантируя стабильность через линтер-правила и шаблоны.

Этапы и числовые показатели

1. Аудит и дизайн новой архитектуры (1–2 недели):

  • анализ кодовой баз;

  • выявление антипаттернов;

  • проектирование BaseComponent и новой модели Page Object с включением нативного Page.

2. Создание «скелета» и пилотная миграция (2–3 недели):

  • реализация базовых компонентов;

  • перевод первых 10–15% тестов на новую архитектуру;

  • подтверждение гипотезы о детерминизме.

3. Масштабная миграция (4–6 недель):

  • поэтапный перевод всей базы тестов на новые паттерны;

  • параллельно — настройка Ruff (анализатор кода на ошибки и соответствие стандартам) и шаблонов компонентов, исключающих возврат к антипаттернам.

4. Интеграция отчётности и стабилизация (1–2 недели):

  • подключение инструмента для создания отчетов об автотестах и управления процессами тестирования Allure;

  • валидация прозрачности прогонов в облачной платформе Azure Pipelines;

  • финальная доводка.

Результат

  • Время регрессионного прогона сокращено с 2 недель до 20 часов (экономия >70% времени).
  • Достигнуто детерминированное поведение тестов: устранены ложные падения, вызванные race conditions (состоянием гонки) и явными паузами.
  • Скорость разработки новых автотестов выросла до 3 автотестов в день.
  • Автоматизировано 50% всех актуальных UI тест-кейсов (на момент завершения этапа миграции).
  • Внедрены линтер-правила (Ruff) и шаблоны компонентов — риск возврата к антипаттернам сведён к минимуму.

Бизнес-эффект

  • Команда автоматизации получила стабильный и предсказуемый фреймворк: ложные падения больше не отвлекают инженеров от наращивания покрытия.

  • Время прогона сокращено на 70%, что позволяет запускать регресс чаще и быстрее получать обратную связь по качеству UI.

  • Заложен архитектурный фундамент для масштабирования: новая компонентная модель позволяет наращивать покрытие без экспоненциального роста затрат на поддержку.

  • Прямого влияния на релизный цикл на данном этапе нет (покрытие ещё не достигло целевого уровня, тесты запускает только команда автоматизации) — но созданы все условия для этого влияния в следующем цикле развития

Трудности

Миграция без остановки процесса

Стопор: нельзя было заморозить разработку новых тестов на время рефакторинга.

Решение:

  • чёткое разделение «старый код — новый код»;

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

Инерция команды

Стопор: инженеры привыкли к антипаттернам, и переход на новые паттерны требовал переучивания.

Решение:

  • применение линтер-правил, блокирующих старые подходы на уровне CI;

  • и демонстрация быстрых побед на пилотной группе тестов.

Технологии

Python, Pytest, Playwright, Ruff, Allure, Azure Pipelines.


Хотите узнать подробнее об услуге?
Узнать подробнее
snippet
Другие работы
Создание Android-приложения для «Major Express»
Доработка безопасности приложения «ЮMoney» для Android
Реализация новых функций и рефакторинг существующих модулей Android-приложения компании «Юрент»
Разработка цифрового продукта для российского банка
Создание приложения управления сном для компании «Аскона»
Создание единой системы авторизации для крупной российской компании
Анализ процессов крупной производственной компании
Создание Android-приложения для «Major Express»
Доработка безопасности приложения «ЮMoney» для Android
Реализация новых функций и рефакторинг существующих модулей Android-приложения компании «Юрент»
Разработка цифрового продукта для российского банка
Создание приложения управления сном для компании «Аскона»
Создание единой системы авторизации для крупной российской компании
Анализ процессов крупной производственной компании
Оставьте заявку на проект
Оставьте контакты, чтобы обсудить проект и условия сотрудничества, или позвоните: 8 800 200-99-24
Прикрепить файл до 10Мб
Файл выбран
Можно прикрепить один файл в формате: txt, doc, docx, odt, xls, xlsx, pdf, jpg, jpeg, png.

Размер файла до 10 Мб.
Написать нам
Оставьте контакты, чтобы обсудить проект и условия
сотрудничества, или позвоните: 8 800 200-99-24
Прикрепить файл до 10Мб
Файл выбран
Можно прикрепить один файл в формате: txt, doc, docx, odt, xls, xlsx, pdf, jpg, jpeg, png.

Размер файла до 10 Мб.
Оставьте свои контакты
SimbirSoft регулярно расширяет штат сотрудников.
Отправьте контакты, чтобы обсудить условия сотрудничества.
  • Angular-разработчик
  • Системный аналитик (банк)
  • Golang-разработчик
  • Data-инженер
  • Prompt-инженер
  • Лидогенератор
  • SRE-инженер
  • SDET Java
  • QA Fullstack Java\Kotlin
  • Data Scientist RecSys
  • NLP-разработчик
  • Системный аналитик ЦФТ
  • Сетевой инженер/системный аналитик
  • Tech Lead NLP Engineer
  • Rust разработчик Senior
  • Системный аналитик (с опытом в финтех проектах)
  • Системный аналитик (Минск)
  • QA Automation C#
  • QA Fullstack TypeScript
  • Аналитик 1С (ЗУП)
Прикрепить резюме, до 10 Мб*
Файл выбран
Можно прикрепить один файл в формате: txt, doc, docx, odt, xls, xlsx, pdf, jpg, jpeg, png.

Размер файла до 10 Мб.
Написать нам
Расскажите, какие задачи сейчас на вашем проекте.
Проконсультируем и предложим подходящих специалистов, а также сориентируем по ставкам на выделенные команды.
Направление
Количество специалистов
Middle
TeamLead
Senior
TechLead
Прикрепить файл до 10Мб
Файл выбран
Можно прикрепить один файл в формате: txt, doc, docx, odt, xls, xlsx, pdf, jpg, jpeg, png.

Размер файла до 10 Мб.
Экспресс-консультация
Заполните все поля формы.
Эксперт свяжется с вами в течение рабочего дня.
Тематика
Прикрепить файл до 10Мб
Файл выбран
Можно прикрепить один файл в формате: txt, doc, docx, odt, xls, xlsx, pdf, jpg, jpeg, png.

Размер файла до 10 Мб.
Порекомендуйте друга — получите вознаграждение!
  • Angular-разработчик
  • Системный аналитик (банк)
  • Golang-разработчик
  • Data-инженер
  • Prompt-инженер
  • Лидогенератор
  • SRE-инженер
  • SDET Java
  • QA Fullstack Java\Kotlin
  • Data Scientist RecSys
  • NLP-разработчик
  • Системный аналитик ЦФТ
  • Сетевой инженер/системный аналитик
  • Tech Lead NLP Engineer
  • Rust разработчик Senior
  • Системный аналитик (с опытом в финтех проектах)
  • Системный аналитик (Минск)
  • QA Automation C#
  • QA Fullstack TypeScript
  • Аналитик 1С (ЗУП)
Ваши данные
Данные кандидата
Прикрепить резюме, до 10Мб
Файл выбран
Можно прикрепить один файл в формате: txt, doc, docx, odt, xls, xlsx, pdf, jpg, jpeg, png.

Размер файла до 10 Мб.
Отправить
Отправлено
Заказать демонстрацию
Оставьте контакты, чтобы обсудить проект и условия
сотрудничества, или позвоните: 8 800 200-99-24
Прикрепить файл до 10Мб
Файл выбран
Можно прикрепить один файл в формате: txt, doc, docx, odt, xls, xlsx, pdf, jpg, jpeg, png.

Размер файла до 10 Мб.