Comments 4
Статья отличная, но я не понял - решение открытое, его можно попробовать у себя?
Благодарю за отзыв!
Полностью открытым решение быть не может оно включает внутренние компоненты и интеграции, завязанные на корпоративную инфраструктуру, CI и окружение. Однако концепция остаётся универсальной, и её можно воспроизвести в облегчённом виде на любой машине:
запись действий + UI-метаданных,
сценарии в виде JSON,
раннер, который воспроизводит шаги и выполняет проверки.
Я рассматриваю возможность собрать небольшую демонстрационную версию без корпоративных зависимостей чтобы показать сам подход. Если будет запрос на это со стороны сообщества, можно сделать такой вариант.
А можете рассказать про аналог UI Automation в линуксе? Интересно как там это возможно.
Насколько надежные тесты получаются? Можете ли вы показать видео с записью и воспроизведением? Есть ли визуализация фиксируемого компонента при записи скрипта? Есть ли возможность вкладывать один скрипт в другой, чтобы например одинаковую последовательность не записывать каждый раз?
Когда-то я делал подобный проект, но только под windows. До конца так и не довел, не смог добиться 100% стабильности определения элементов.
Спасибо за вопросы - отвечу кратко и в рамках того, что можно описывать публично.
Аналог UI Automation в Linux
Прямого аналога Windows UIA нет.
Есть AT-SPI, но поддержка фрагментирована и зависит от тулкита (GTK/Qt). Поэтому в Linux работает только облегчённый режим: базовые операции доступны, но без полноценного дерева UI. Это скорее вспомогательная возможность, а не основная платформа.Надёжность тестов
На Windows тесты получаются устойчивые именно за счёт многослойного поиска элементов и использования нескольких источников метаданных.
Мы не стремимся к 100% стабильности - она недостижима в принципе - но достигаем высокой повторяемости при реальных сценариях.Продемонстрировать запись/воспроизведение
Рабочие записи привязаны к корпоративным приложениям, поэтому показывать их нельзя.
Думаю над подготовкой краткого публичного демо на нейтральном приложении.Визуализация фиксируемых элементов
Визуализация есть, но она утилитарная: отображает структуру метаданных элемента и путь в UI-дереве.
Это внутренний технический инструмент, он не предназначен для широкого использования.Вкладывание скриптов
Да, есть механизм компоновки сценариев, чтобы переиспользовать повторяющиеся последовательности действий. Это позволяет сократить объём тестов и уменьшить рутинные правки при изменениях UI.
Если будет интерес, могу позже подготовить отдельный материал по архитектурным принципам, не углубляясь в закрытую часть реализации.
Как я перестал бояться GUI-тестов и научился их любить (почти)