RCPTT (RCP Testing Tool)
Rich Client Platform Testing Tool
RCPTT – проект для автоматизации GUI‑тестирования приложений на базе Eclipse. RCPTT полностью понимает внутреннюю структуру платформы Eclipse, скрывая эту сложность от конечных пользователей и позволяя инженерам QA создавать высоконадежные UI‑тесты с большой скоростью.
Ключевые возможности
- Производительность создания тестов – возможность записывать действия пользователя с тем же уровнем эффективности, что и ручное создание скриптов, а также захватывать начальное/конечное состояние приложения в переиспользуемые модели для последующего восстановления/проверки состояния.
- Поддержка технологий Eclipse – инструмент тестирования должен знать ключевые концепции платформы Eclipse, включая Workspace, Workbench, Preferences, Debug API и понимать структуру UI, например части Workbench (views, editors, toolbars) и структуры диаграмм GEF/GMF/Graphiti.
- Интеллектуальный runtime – автоматическое ожидание фоновых асинхронных операций, инициируемых UI (включая jobs, display async/timer execs, decorations, databindings, text reconcilers, text hovers и др.).
- Надёжные результаты – устранение ложных отрицательных/положительных результатов за счёт изоляции тестов друг от друга, независимости от размера экрана/операционной системы и т.д.
- Поддерживаемость – артефакты тестов легко изменяемы, чтобы отражать изменения UI и быть дружелюбными к системам контроля версий.
- Расширяемость – предоставление API для расширения инструмента, чтобы поддерживать пользовательские виджеты, контексты, отчёты и асинхронные примитивы.
- Непрерывная интеграция – CI Test Runner запускает тесты локально и в интеграции с Jenkins, Hudson или другими инструментами CI.
Рабочий процесс
Стандартный рабочий процесс:
- Захват состояния приложения
- Запись действий теста
- Добавление утверждений (assertions)
- Более сложные действия, включая параметризацию тестов, извлечение общих частей функционала в переиспользуемые действия, ручное написание тестов до UI и отладку тестов – всё это также доступно. Разработчики могут расширять функциональность инструмента, добавляя поддержку записи/воспроизведения пользовательских виджетов и захвата/применения пользовательских аспектов состояния приложения.