Coded UI Test: комплексное руководство для начинающих по фреймворку автоматизации
Автоматизированное UI-тестирование необходимо для поставки высококачественных приложений. Coded UI Test (CUIT) — мощный инструмент, интегрированный в Visual Studio, позволяющий разработчикам и QA-инженерам беспрепятственно сотрудничать, создавая поддерживаемые тесты для настольных и веб-приложений.
Что такое Coded UI Test?
Coded UI Test (CUIT) управляет приложением через его пользовательский интерфейс, проверяя, что каждый UI-элемент ведёт себя как ожидается. Он превращает ручные тестовые шаги в повторяемые скрипты, обеспечивая единое тестовое покрытие между сборками.
Ключевые особенности Coded UI Test
- Полное функциональное UI-тестирование для Windows и веб-приложений.
- Автоматическая генерация кода на VB.NET или C#.
- Глубокая интеграция с ALM-трекингом историй.
- Сборка, развёртывание и тестирование в CI-конвейерах.
- Локальное, удалённое и data-driven выполнение тестов.
- Расширяемая архитектура для пользовательской тестовой логики.
- Intent-aware запись с устойчивым воспроизведением.
Поддерживаемые технологии
CUIT охватывает широкий спектр типов UI:
- Настольные Windows-приложения (WinForms, WPF)
- Веб-сервисы (SOAP, ASPX и др.)
- Windows Phone приложения
- WPF (Windows Presentation Foundation)
- Веб-приложения (HTML, Silverlight, HTML5)
Почему выбрать Coded UI для автоматизации?
- Единый язык и набор инструментов для разработчиков и тестировщиков.
- Широкая поддержка платформ — и веб, и десктоп.
- Продвинутая идентификация элементов и синхронизация.
- Движок воспроизведения предлагает утилиты ожидания:
WaitForControlExistиWaitForReadyLevel. - Удалённое выполнение через Test Agents.
- Поддержка многослойного фреймворка для сложного тестового дизайна.
- Встроенное логирование с log4net.dll для детальной диагностики.
- Descriptive programming позволяет автоматизацию на основе свойств объектов.
- Нативная поддержка AJAX-контролов.
Создание Coded UI тестов
Существует три основных подхода:
- Конвертация существующей записи ручного теста.
- Создание нового теста с нуля.
- Написание тестовой логики напрямую в коде.
Типовая структура файлов CUIT-проекта
| Файл | Содержимое | Редактируемый |
|---|---|---|
| UIMap.Designer.cs | Автогенерированный код для UI map. | Нет |
| UIMap.cs | Пользовательские модификации UI map. | Да |
| CodedUITest1.cs | Тестовый класс, методы, утверждения. | Да |
| UIMap.uitest | XML-представление UI map. | Нет |
Например, UIMap.Designer.cs содержит сгенерированный класс UIMap, а UIMap.cs — любую пользовательскую логику. Прямое редактирование дизайнера не рекомендуется, так как изменения могут быть перезаписаны.
Выполнение Coded UI теста
CUIT поддерживает два основных пути выполнения:
- Запись и воспроизведение тестового сценария.
- Ручное кодирование тестовой логики.
Типичные шаги:
- Создание проекта Coded UI test.
- Добавление нового файла Coded UI test.
- Запись желаемых пользовательских действий.
- Проверка UI-значений (например, текстовых полей).
- Просмотр сгенерированного тестового кода.
- Добавление дополнительных действий и утверждений по необходимости.
- Тонкая настройка деталей теста.
- Запуск теста и анализ результатов.
Лучшие практики
- Предпочитайте Test Builder для создания тестов.
- Избегайте прямого редактирования
UIMap.Designer.cs. - Структурируйте тесты как последовательности записанных методов.
- Держите каждый метод сфокусированным на одной странице или диалоге.
- Используйте описательные имена методов для ясности.
- Ограничивайте записанные методы менее чем 10 действиями, когда возможно.
- Позволяйте Test Builder автоматически генерировать утверждения.
- Перезаписывайте затронутые секции при изменении UI.
- При прямом кодировании полагайтесь на классы, предоставленные дизайнером, для надёжности.
CUIT vs Selenium vs QTP
Ниже ключевые отличия:
- Selenium фокусируется на веб-браузерах и не поддерживает WPF или нативные Windows-приложения.
- Coded UI уникально поддерживает Windows Store и Phone приложения.
- TestComplete может тестировать Windows-приложения, но требует плагин.
Выводы
- Coded UI управляет приложениями через их UI, делая его идеальным для сквозных функциональных тестов.
- Поддерживает широкий спектр технологий: от веб-сервисов до Windows Phone приложений.
- Фреймворк способствует сотрудничеству разработчиков и тестировщиков на едином языке.
- Ключевые файлы проекта:
UIMap.Designer.cs,UIMap.cs,CodedUITest1.cs,UIMap.uitest.
Язык C
- Промышленная автоматизация: Как умные системы управления трансформируют производство
- Ключевое слово this в C#: разбор всех сценариев использования
- Создайте систему домашней автоматизации на Raspberry Pi для удаленного управления
- Полное руководство по истории версий .NET и C#
- Освоение программирования на C: подробное руководство для начинающих
- Освоение Verilog: полное руководство по проектированию цифровых схем
- RPA vs тестовая автоматизация: ключевые отличия и влияние на бизнес
- ИИ в тестовой автоматизации: революция в обеспечении качества для современных ERP-систем
- Продвинутое сварочное автоматизированное оборудование: повышение эффективности и качества
- Промышленная автоматизация 4.0: революционизируем производственную эффективность