Этим постом мы начнем серию уроков об автоматизации WPF приложений с использованием Telerik Testing Framework и TestStack White.
Рассмотрим тестовые фреймворки и само тестируемое приложение.
Автоматизируемое приложение
Рассматриваемое приложение разработано с использованием технологии WPF, но также имеет такой контрол как WinFoms grid. Использование WinFoms grid внутри WPF объясняется увеличением производительности самого приложения, так как WPF grid с 40 колонками и 100 строками весит довольно много. Grid имеет много встроенных методов и свойств для работы с контекстным меню, панелью подсказок и другими фичами. Но как автоматизировать такой “симбиоз” WPF и WinFoms? Я исследовал много бесплатных и платных инструментов и фреймворков. Были выбраны “победители”, обеспечивающие гибкость и простоту поддержки, которые очень важны в процессе разработки и тестирования приложений. Вот они: Telerik Testing Framework и TestStack White. Обе технологии используются в привязке к языку C#, а также имеют свои сильные и слабые стороны. Но самое главное – они идеально взаимодействуют, что предоставляет возможность автоматизировать практически любые декстопные (desktop) приложения.
Telerik Testing Framework
Мощный и бесплатный фреймворк. Также можно оплатить поддержку дополнительных инструментов для автоматизации нагрузочного и функционального тестирования, но их мы не будем использовать. Telerik предоставляет Test Studio – хороший коммерческий инструмент-надстройка. Telerik Testing Framework наиболее подходящий для тестирования WPF приложений. Элементы находятся с помощью XamlPath, также существуют другие опции поиска. Framework предоставляет API для работы со всевозможными элементами. Но его мощность ограничивается WPF и он не настолько хорош при работе с элементами WinForms.
TestStack White
Очень мощный фреймворк с открытым исходным кодом. Разработан на основе UI Automation. Его единственным недостатком является сложность в поиске элементов. Поэтому я стараюсь использовать White с контролами, с которыми Telerik Testing Framework не может или плохо справляется – WinForm grid, контекстное меню, закрытие окон с помощью крестика (X) в правом верхнем углу приложений.
На свой GitHub аккаунт я залил проект для автоматизации тестового приложения, который содержит и само приложение. Оно довольно простое и взято с этого примера. Автоматизация содержит базовые функциональные тесты. Следующие статьи этого курса включат детальное объяснение всего проекта.
Ниже представлено оглавление статей этого курса:
- Введение (данный урок)
- Автоматизация WPF – структура проекта
- Автоматизация WPF – поиск и структура WPF элементов
- Автоматизация WPF – поиск и структура WinForms элементов
- Автоматизация WPF – использование элементов
- Автоматизация WPF – запуск тестов