Поделиться через


Использование Автоматизации Пользовательского Интерфейса для автоматизированного тестирования

Примечание.

Эта документация предназначена для разработчиков .NET Framework, желающих использовать управляемые классы автоматизации пользовательского интерфейса, определенные в пространстве имен System.Windows.Automation. Последние сведения об автоматизации пользовательского интерфейса см. в статье API автоматизации Windows. Автоматизация пользовательского интерфейса.

В этом обзоре описывается, как microsoft модель автоматизации пользовательского интерфейса может быть полезной в качестве платформы для программного доступа в сценариях автоматического тестирования.

модель автоматизации пользовательского интерфейса предоставляет единую объектную модель, которая позволяет всем платформам пользовательского интерфейса предоставлять сложные и широкие функциональные возможности в доступной и легкой автоматизированной форме.

модель автоматизации пользовательского интерфейса был разработан в качестве преемника Microsoft Active Accessibility. Активные специальные возможности — это существующая платформа, предназначенная для обеспечения доступности элементов управления и приложений. Активные специальные возможности не были разработаны с учетом автоматизации тестирования, несмотря на то, что она развивалась в этой роли из-за очень аналогичных требований к специальным возможностям и автоматизации. модель автоматизации пользовательского интерфейса, помимо предоставления более подробных решений для специальных возможностей, также предназначен для обеспечения надежных функциональных возможностей для автоматического тестирования. Например, активные специальные возможности используют единый интерфейс для предоставления сведений о пользовательском интерфейсе и сбора сведений, необходимых продуктам AT; модель автоматизации пользовательского интерфейса разделяет две модели.

Поставщик и клиент должны реализовать модель автоматизации пользовательского интерфейса, чтобы он был полезным в качестве автоматизированного средства тестирования. модель автоматизации пользовательского интерфейса поставщики — это такие приложения, как Microsoft Word, Excel и другие сторонние приложения или элементы управления на основе операционной системы Microsoft Windows. Клиенты автоматизации пользовательского интерфейса включают скрипты автоматических тестов приложения и приложения специальных возможностей.

Примечание.

Этот обзор предназначен для демонстрации новых и улучшенных возможностей автоматического тестирования модель автоматизации пользовательского интерфейса. В данном обзоре не предполагается предоставлять сведения о специальных возможностях, и тема доступности будет затрагиваться только там, где это необходимо.

Модель автоматизации пользовательского интерфейса в поставщике

Чтобы пользовательский интерфейс был автоматизирован, разработчик приложения или элемента управления должен посмотреть, какие действия может выполнять конечный пользователь в объекте пользовательского интерфейса с помощью стандартной клавиатуры и взаимодействия мыши.

После определения этих ключевых действий соответствующие шаблоны элементов управления модель автоматизации пользовательского интерфейса (т. е. шаблоны элементов управления, которые зеркало функциональные возможности и поведение элемента пользовательского интерфейса) должны быть реализованы в элементе управления. Например, взаимодействие пользователя с элементом управления "поле со списком" (таким как диалоговое окно запуска) обычно включает развертывание и свертывание поля со списком для отображения или скрытия списка элементов, выбор элемента из списка или добавление нового значения путем ввода с клавиатуры.

Примечание.

В других моделях специальных возможностей разработчики должны собирать сведения непосредственно из отдельных кнопок, меню и других элементов управления. К несчастью, каждый тип элемента управления поставляется в десятках вспомогательных вариантов. Другими словами, даже если десять вариантов кнопки работают одинаково и выполняют ту же функцию, все они должны рассматриваться как отдельные элементы управления. Нет способа узнать, что эти элементы управления функционально эквивалентны. Шаблоны элементов управления были разработаны для представления такого общего поведения элементов управления. Для получения дополнительной информации см. UI Automation Control Patterns Overview.

Реализация автоматизации пользовательского интерфейса

Как упоминание ранее, без единой модели, предоставленной модель автоматизации пользовательского интерфейса, средства тестирования и разработчики должны знать сведения о конкретной платформе для предоставления свойств и поведения элементов управления в этой платформе. Так как в операционных системах Windows может быть несколько разных платформ пользовательского интерфейса, включая Win32, Windows Forms и Windows Presentation Foundation (WPF), это может быть сложной задачей для тестирования нескольких приложений с элементами управления, которые выглядят похожими. Например, в следующей таблице описаны имена свойств для конкретной платформы, необходимые для получения имени (или текста), связанного с элементом управления кнопкой, и отображаются одно эквивалентные свойства модель автоматизации пользовательского интерфейса.

Тип элемента управления модели автоматизации пользовательского интерфейса Платформа пользовательского интерфейса Свойство инфраструктуры Свойство модели автоматизации пользовательского интерфейса
Кнопка Windows Presentation Foundation Содержимое NameProperty
Кнопка Win32 Заголовок NameProperty
Изображения HTML alt NameProperty

модель автоматизации пользовательского интерфейса поставщики отвечают за сопоставление свойств платформы их элементов управления с эквивалентными свойствами модель автоматизации пользовательского интерфейса.

Сведения о реализации модель автоматизации пользовательского интерфейса в поставщике см. в модель автоматизации пользовательского интерфейса поставщиков управляемого кода. Сведения о реализации шаблонов элементов управления см. в разделах UI Automation Control Patterns и UI Automation Text Pattern.

Модель автоматизации пользовательского интерфейса в клиенте

Цель многих средств и сценариев автоматического тестирования состоит в согласованной и воспроизводимой обработке пользовательского интерфейса. Это может включать модульное тестирование определенных элементов управления с помощью записи и воспроизведения скриптов тестирования, которые выполняют итерацию по ряду универсальных действий в группе элементов управления.

Осложнение, вытекающее из автоматических приложений, заключается в трудности синхронизации тестирования с динамической целью. Например, элемент управления "Список", такой как в диспетчере задач Windows, отображает список запущенных приложений. Поскольку элементы в этом списке динамически обновляются независимо от тестового приложения, невозможно повторять выбор определенного элемента в списке с каким-либо постоянством. Аналогичные проблемы также могут возникнуть при попытке повторить простые изменения фокуса в пользовательском интерфейсе, который находится за пределами управления тестируемым приложением.

Программный доступ

Программный доступ предоставляет возможность имитировать через код любое взаимодействие, обеспечиваемое традиционным вводом с помощью мыши и клавиатуры. модель автоматизации пользовательского интерфейса обеспечивает программный доступ через пять компонентов:

  • Дерево модель автоматизации пользовательского интерфейса упрощает навигацию по структуре пользовательского интерфейса. Это дерево строится из коллекции hWnd. Дополнительные сведения см. в разделе UI Automation Tree Overview.

  • Элементы автоматизации — это отдельные компоненты в пользовательском интерфейсе. Часто они могут быть более детализированы, чем hWnd. Для получения дополнительной информации см. UI Automation Control Types Overview.

  • Свойства автоматизации предоставляют конкретные сведения о элементах пользовательского интерфейса. Дополнительные сведения см. в разделе UI Automation Properties Overview.

  • Шаблоны элементов управления задают определенный аспект функциональности элемента управления; они могут состоять из свойств, методов, событий и сведений о структуре. Для получения дополнительной информации см. UI Automation Control Patterns Overview.

  • События автоматизации обеспечивают уведомления и информацию. Для получения дополнительной информации см. UI Automation Events Overview.

Ключевые свойства для автоматизации тестирования

Возможность уникально определить и впоследствии найти любой элемент управления в пользовательском интерфейсе предоставляет основу для автоматизированных тестовых приложений для работы с этим пользовательским интерфейсом. Существует несколько свойств Microsoft модель автоматизации пользовательского интерфейса, используемых клиентами и поставщиками, которые помогают в этом.

AutomationId

Уникально идентифицирует элемент автоматизации среди элементов того же уровня. ЭлементAutomationIdProperty не локализован, в отличие от свойства, такого как NameProperty , которое обычно локализуется, если продукт поставляется на нескольких языках. См. раздел Use the AutomationID Property.

Примечание.

AutomationIdProperty не гарантирует уникальную идентификацию по всему дереву автоматизации. Например, приложение может содержать элемент управления "Меню" с несколькими пунктами меню верхнего уровня, которые в свою очередь имеют несколько дочерних пунктов меню. Эти пункты меню второго уровня могут идентифицироваться по универсальной схеме, такой как "элемент1, элемент2, элемент3 и т. д.", что допускает повторяющиеся идентификаторы дочерних элементов в разных пунктах меню верхнего уровня.

ControlType

Определяет тип элемента управления, представленного элементом автоматизации. Из знания типа элемента управления могут быть получены важные сведения. См. раздел UI Automation Control Types Overview.

NameProperty

Это текстовая строка, которая определяет или описывает элемент управления. СвойствоNameProperty следует использовать с осторожностью, поскольку оно может быть локализовано. См. раздел UI Automation Properties Overview.

Реализация автоматизации пользовательского интерфейса в тестовом приложении

Этап Description
Добавление ссылок для автоматизации пользовательского интерфейса. Здесь перечислены библиотеки dll модель автоматизации пользовательского интерфейса, необходимые для модель автоматизации пользовательского интерфейса клиентов.

— UIAutomationClient.dll предоставляет доступ к модель автоматизации пользовательского интерфейса клиентским API.
— UIAutomationClientSideProvider.dll предоставляет возможность автоматизации элементов управления Win32. См. раздел UI Automation Support for Standard Controls.
— UIAutomationTypes.dll предоставляет доступ к определенным типам, определенным в модель автоматизации пользовательского интерфейса.
Добавление пространства имен System.Windows.Automation Это пространство имен содержит все модель автоматизации пользовательского интерфейса клиенты должны использовать возможности модель автоматизации пользовательского интерфейса кроме обработки текста.
Добавление пространства имен System.Windows.Automation.Text Это пространство имен содержит все модель автоматизации пользовательского интерфейса клиенты, необходимые для использования возможностей обработки текста модель автоматизации пользовательского интерфейса.
Найдите элементы управления интересом. Скрипты автоматических тестов находят элементы автоматизации пользовательского интерфейса, представляющие нужные элементы управления в дереве автоматизации.

Существует несколько способов получения элементов автоматизации пользовательского интерфейса с помощью кода.

— запрос пользовательского интерфейса с помощью инструкции Condition . Обычно здесь используется не зависящее от языка свойство AutomationIdProperty . Примечание.AutomationIdProperty Можно получить с помощью средства, например Inspect.exe, который может элементизировать модель автоматизации пользовательского интерфейса свойства элемента управления.

— Используйте TreeWalker класс для обхода всего дерева модель автоматизации пользовательского интерфейса или подмножества.
— Отслеживание фокуса.
— Используйте hWnd элемента управления.
— Используйте расположение экрана, например расположение курсора мыши.

См. раздел Obtaining UI Automation Elements.
Получение шаблонов элементов управления. Шаблоны элементов управления предоставляют общие расширения функциональности для функциональных возможностей схожих элементов управления.

После нахождения элемента управления, требующего проверки, скрипты автоматических тестов получают интересующие шаблоны элементов управления из этих элементов автоматизации пользовательского интерфейса. Например, шаблон элемента управления InvokePattern для типичной функциональности кнопки или шаблон элемента управления WindowPattern для функциональности окна.

См. раздел UI Automation Control Patterns Overview.
Автоматизация пользовательского интерфейса. Автоматизированные скрипты тестирования теперь могут управлять любым пользовательским интерфейсом из платформы пользовательского интерфейса с помощью сведений и функциональных возможностей, предоставляемых шаблонами элементов управления модель автоматизации пользовательского интерфейса.

Существует ряд связанных средств и технологий, поддерживающих автоматическое тестирование с помощью модель автоматизации пользовательского интерфейса.

  • Inspect.exe — это графическое приложение пользовательского интерфейса (GUI), которое можно использовать для сбора модель автоматизации пользовательского интерфейса информации для разработки и отладки клиентов. Inspect.exe входит в пакет SDK для Windows.

  • MSAABridge предоставляет модель автоматизации пользовательского интерфейса сведения для активных клиентов специальных возможностей. Основной целью преодоления модель автоматизации пользовательского интерфейса активной доступности является предоставление существующим клиентам активных специальных возможностей возможность взаимодействовать с любой платформой, реализующей модель автоматизации пользовательского интерфейса.

Безопасность

Сведения о безопасности см. в разделе UI Automation Security Overview.

См. также