Использование Автоматизации Пользовательского Интерфейса для автоматизированного тестирования
В этом обзоре описывается, как microsoft модель автоматизации пользовательского интерфейса может быть полезен в качестве платформы для программного доступа в сценариях автоматического тестирования.
модель автоматизации пользовательского интерфейса предоставляет единую объектную модель, которая позволяет всем платформам пользовательского интерфейса предоставлять сложные и широкие функциональные возможности доступным и легко автоматизированным способом.
модель автоматизации пользовательского интерфейса была разработана в качестве преемника Microsoft Active Accessibility, платформы, предназначенной для предоставления решения для обеспечения доступности элементов управления и приложений. Microsoft Active Accessibility не разрабатывался с учетом автоматизации тестирования, хотя он превратился в эту роль из-за аналогичных требований к специальным возможностям и автоматизации. модель автоматизации пользовательского интерфейса специально разработан для предоставления надежных функциональных возможностей для автоматического тестирования, а также для предоставления более точных решений для специальных возможностей. Например, Microsoft Active Accessibility использует единый интерфейс для предоставления сведений о пользовательском интерфейсе и для сбора сведений, необходимых для продуктов специальных возможностей. модель автоматизации пользовательского интерфейса разделяет две модели.
Поставщик и клиент должны реализовать модель автоматизации пользовательского интерфейса, чтобы они были полезны в качестве автоматизированного средства тестирования. модель автоматизации пользовательского интерфейса поставщиками являются приложения, такие как Microsoft Word, Microsoft Excel и другие сторонние приложения или элементы управления на основе операционной системы Windows. Клиенты автоматизации пользовательского интерфейса включают скрипты автоматических тестов приложения и приложения специальных возможностей.
В этом разделе содержатся следующие подразделы.
- модель автоматизации пользовательского интерфейса в разделе "Поставщики"
- модель автоматизации пользовательского интерфейса в клиентах
- Ключевые свойства для автоматизации тестирования
- Связанные инструменты и технологии
- Связанные темы
модель автоматизации пользовательского интерфейса в разделе "Поставщики"
Чтобы автоматизировать элемент пользовательского интерфейса, разработчик должен посмотреть, какие действия пользователь может выполнять с объектом пользовательского интерфейса с помощью стандартного взаимодействия с клавиатурой и мышью. После определения этих ключевых действий в элементе управления должны быть реализованы шаблоны элементов управления модель автоматизации пользовательского интерфейса, которые зеркало функциональные возможности и поведение элемента пользовательского интерфейса. Например, взаимодействие пользователя с элементом управления "Поле со списком" обычно включает расширение и свертывание поля со списком для отображения или скрытия списка элементов, выбора элемента из списка или добавления нового значения с помощью ввода с помощью клавиатуры.
В других моделях специальных возможностей разработчики должны собирать сведения непосредственно из отдельных кнопок, меню и других элементов управления. Каждый тип элемента управления имеет десятки незначительных вариантов. Другими словами, хотя 10 вариантов кнопки работают одинаково и выполняют одну и ту же функцию, все они должны рассматриваться как уникальные элементы управления. Нет способа узнать, что эти элементы управления функционально эквивалентны. модель автоматизации пользовательского интерфейса шаблоны элементов управления были разработаны для представления этих общих поведений элементов управления. Для получения дополнительной информации см. UI Automation Control Patterns Overview.
Без единой модели шаблонов элементов управления, предоставляемой модель автоматизации пользовательского интерфейса, средства тестирования и разработчики должны иметь сведения о конкретной платформе для предоставления свойств и поведения элементов управления в этой платформе. Так как в операционных системах Windows одновременно может присутствовать несколько различных платформ пользовательского интерфейса, включая Microsoft Win32, Windows Forms и Windows Presentation Foundation (WPF), тестирование нескольких приложений с похожими элементами управления может оказаться сложной задачей. Например, в следующей таблице перечислены имена свойств платформы, необходимые для получения имени или текста, связанного с элементом управления "Кнопка", и показаны эквивалентные свойства модель автоматизации пользовательского интерфейса.
Тип элемента управления | Платформа пользовательского интерфейса | Свойство, зависят от платформы | свойство модель автоматизации пользовательского интерфейса |
---|---|---|---|
Кнопка | WPF | Содержимое | Name - свойство |
Кнопка | Win32 | Caption | Name - свойство |
Image | HTML | alt | Name - свойство |
модель автоматизации пользовательского интерфейса поставщики отвечают за сопоставление свойств своих элементов управления, относящихся к платформе, с эквивалентными свойствами модель автоматизации пользовательского интерфейса. Сведения о реализации модель автоматизации пользовательского интерфейса в поставщике см. в руководстве программиста поставщика модель автоматизации пользовательского интерфейса. Сведения о реализации шаблонов элементов управления см. в разделе Реализация шаблонов элементов управления модель автоматизации пользовательского интерфейса.
модель автоматизации пользовательского интерфейса в клиентах
Цель автоматизированных средств и сценариев тестирования — согласованное и воспроизводимое управление пользовательским интерфейсом. Например, это может включать модульное тестирование конкретных элементов управления, а также запись и выполнение скриптов тестирования, которые выполняют итерацию по ряду универсальных действий для группы элементов управления.
Сложностью автоматизированных приложений является сложность синхронизации теста с динамическим целевым объектом, например элементом управления "Поле списка", например диспетчером задач Windows, который отображает список запущенных в настоящее время приложений. Поскольку элементы в списке динамически обновляются вне контроля тестового приложения, попытка повторного выбора определенного элемента в списке с какой-либо согласованностью невозможна. Аналогичные проблемы могут возникнуть при попытке повторить простые изменения фокуса в пользовательском интерфейсе, который находится вне контроля тестового приложения.
Программный доступ
Программный доступ предоставляет возможность имитировать через код любое взаимодействие, обеспечиваемое традиционным вводом с помощью мыши и клавиатуры. модель автоматизации пользовательского интерфейса обеспечивает программный доступ через пять компонентов:
- Дерево модель автоматизации пользовательского интерфейса упрощает навигацию по структуре пользовательского интерфейса. Дерево создается из коллекции HWND. Дополнительные сведения см. в статье Общие сведения о дереве модель автоматизации пользовательского интерфейса.
- Элементы автоматизации — это отдельные компоненты в пользовательском интерфейсе. Они часто могут быть более детализированными, чем HWND.
- Свойства автоматизации предоставляют конкретные сведения об элементах пользовательского интерфейса. Дополнительные сведения см. в разделе UI Automation Properties Overview.
- Шаблоны элементов управления задают определенный аспект функциональности элемента управления; они могут состоять из свойств, методов, событий и сведений о структуре. Для получения дополнительной информации см. UI Automation Control Patterns Overview.
- События автоматизации обеспечивают уведомления и информацию. Для получения дополнительной информации см. UI Automation Events Overview.
Ключевые свойства для автоматизации тестирования
Возможность однозначно идентифицировать и впоследствии находить любой элемент управления в пользовательском интерфейсе обеспечивает основу для автоматических тестовых приложений для работы с этим пользовательским интерфейсом. модель автоматизации пользовательского интерфейса свойства, используемые клиентами и поставщиками для идентификации и поиска элементов управления, описаны в следующей таблице.
Свойство | Описание |
---|---|
AutomationId | Уникально отличает элемент автоматизации от его одноуровневых элементов. Поддержка свойства AutomationId не требуется. Если оно доступно, свойство AutomationId элемента будет одинаковым в любом экземпляре приложения, независимо от локального языка. Несмотря на то, что свойство AutomationId является уникальным среди одноуровневых элементов, оно не может быть уникальным для всего рабочего стола. Например, несколько экземпляров приложения или несколько представлений папок в Microsoft Windows Обозреватель могут содержать элементы с одинаковым AutomationIdProperty, например SystemMenuBar. Клиенты не должны делать никаких предположений относительно automationId, предоставляемых другими приложениями. AutomationId не гарантирует стабильность в разных выпусках или сборках приложения. |
ControlType | Определяет тип элемента управления, представленного элементом автоматизации. Из знания типа элемента управления могут быть получены важные сведения. Для получения дополнительной информации см. UI Automation Control Types Overview. |
Имя | Текстовая строка, определяющая или объясняющая назначение элемента автоматизации. Его следует использовать с осторожностью, так как его можно локализовать. Свойство Name не является уникальным идентификатором для одноуровневых элементов. Для автоматизации тестирования клиенты должны использовать свойство AutomationId или RuntimeId. |
RuntimeId | Массив целых чисел, представляющих идентификатор элемента автоматизации. Идентификатор уникален на рабочем столе, но гарантированно будет уникальным только для пользовательского интерфейса рабочего стола, на котором он был создан. Идентификаторы могут использоваться повторно со временем. Используйте IUIAutomation::CompareElements , чтобы определить, является ли элемент, имеющий определенный идентификатор среды выполнения, тем же элементом, который ранее имел этот идентификатор. Кроме того, формат свойства RuntimeId может измениться. Его следует рассматривать как непрозрачное значение и использовать только для сравнения; например, чтобы определить, находится ли элемент автоматизации в кэше. |
Связанные инструменты и технологии
Проверка (Inspect.exe) — это средство на основе Windows, которое можно использовать для сбора модель автоматизации пользовательского интерфейса информации для разработки и отладки поставщиков и клиентов. Проверка входит в состав пакета средств разработки программного обеспечения (SDK) для Windows.
Связанные темы