Использование Автоматизации Пользовательского Интерфейса для автоматизированного тестирования
Примечание |
---|
Эта документация предназначена для разработчиков на платформе .NET Framework, которым требуется использовать управляемые классы UI Automation, определенные в пространстве имен System.Windows.Automation.Последние сведения о UI Automation см. на веб-странице Windows Automation API: UI Automation. |
Этот обзор описывает, как Microsoft UI Automation можно использовать в качестве структуры для программного доступа в скриптах автоматизированного тестирования.
UI Automation предоставляет унифицированную объектную модель, поддерживающую все среды user interface (UI) для представления сложных и широких функциональных возможностей доступным и легко автоматизируемым образом.
UI Automation была разработана для замены Microsoft Active Accessibility. Active Accessibility — это существующая рабочая среда, предназначенная для обеспечения доступности элементов управления и приложений. Первоначально в Active Accessibility не было предусмотрено автоматизации тестирования, хотя впоследствии эта возможность была введена из-за очень схожих требований к доступности и автоматизации. UI Automation в дополнение к предоставлению более качественных решений для специальных возможностей также специально разработан для обеспечения надежных функциональных возможностей для автоматического тестирования. Например, Active Accessibility основывается на едином интерфейсе по предоставлению доступа к сведениям о пользовательском интерфейсе и собирает сведения, необходимые для AT продуктов; UI Automation выделяет две модели.
поставщику и клиенту требуется реализоватьUI Automation, чтобы использоваться в качестве средства автоматизированной проверки. Поставщики Автоматизации Пользовательского Интерфейса являются приложениями, как, например, Microsoft Word, Excel, и другими приложениями сторонних разработчиков или элементами управления, основанными на операционной системе Microsoft Windows. Клиенты Автоматизированного Пользовательского Интерфейса включают скрипты автоматизированной проверки и вспомогательные технологические приложения.
Примечание |
---|
Цель этого обзора — показать новые и улучшенные возможности автоматизированной проверки UI Automation.Этот обзор не предназначен для предоставления сведений о специальных возможностях и не ссылается на специальные возможности, отличные от необходимых. |
В этом разделе содержатся следующие подразделы.
- Автоматизированный Пользовательский Интерфейс в Поставщике
- Автоматизация Пользовательского Управления в Клиенте
- Связанные средства и технологии
- Безопасность
- Связанные разделы
Автоматизированный Пользовательский Интерфейс в Поставщике
Для того, чтобы автоматизировать UI, разработчик приложения или элемента управления должен посмотреть, какие действия конечного пользователя могут выполняться над объектом UI при использовании взаимодействия со стандартной клавиатурой и мышью.
Как только эти ключевые действия определены, соответствующие шаблоны элементов управления UI Automation (т. е. шаблоны элементов управления, отражающие функциональные возможности и поведение элемента UI) должны быть реализованы в элементе управления. Например, взаимодействие пользователя с элементом управления combo box (таким, как окна выполнения) обычно включает развертывание и свертывание поля со списком для скрытия или отображения списка элементов, выбор элемента из этого списка или добавление нового значения с помощью ввода с клавиатуры.
Примечание |
---|
С другими моделями уровней доступа, разработчики должны собирать информацию непосредственно из отдельных кнопок, меню или других элементов управления.К сожалению, каждый тип элемента управления поставляется в десятках вспомогательных вариантов.Другими словами, даже если десять вариантов PushButton могут все работать одинаково и выполнять одну и ту же функцию, они все должны рассматриваться как отдельные элементы управления.Нет возможности узнать, что эти элементы управления одинаковы по функциональным возможностям.Шаблоны элементов управления были разработаны для представления этих общих поведений элементов управления.Дополнительные сведения см. в разделе Общие сведения о шаблонах элементов управления модели автоматизации пользовательского интерфейса. |
Реализация Автоматизации Пользовательского Интерфейса
Как упоминалось ранее, без единой модели, предоставляемой UI Automation, средствам проверки и разработчикам, нужно знать сведения о среде, чтобы представлять свойства и поведения элементов управления в этой среде. Поскольку может существовать несколько различных структур пользовательского интерфейса, присутствующих одновременно в операционных системах Windows, включая Win32, Windows Forms и Windows Presentation Foundation (WPF), это может оказаться сложной задачей для проверки нескольких приложений с элементами управления, которые выглядят одинаковыми. Например, следующая таблица перечисляет имена свойств среды необходимые для извлечения имени (или текста), связанного с элементом управления "Кнопка", и отображает единственное эквивалентное свойство UI Automation.
Тип Элемента Автоматизации Пользовательского Интерфейса |
Структура Пользовательского Интерфейса |
Свойство Среды |
Свойство Автоматизации Пользовательского Интерфейса |
---|---|---|---|
Кнопка |
Windows Presentation Foundation (WPF) |
Содержимое |
NameProperty |
Кнопка |
Win32 |
Caption |
NameProperty |
Изображение |
HTML |
alt |
NameProperty |
Поставщики Автоматизации Пользовательского Интерфейса ответственны за сопоставление свойств структуры своих элементов управления и эквивалентных свойств UI Automation.
Сведения о реализации UI Automation в поставщике можно найти в Поставщики автоматизации пользовательского интерфейса для управляемого кода. Сведения о реализации шаблонов элементов управления доступны в Шаблоны модели автоматизации пользовательского интерфейса и Шаблон текста модели автоматизации пользовательского интерфейса.
Автоматизация Пользовательского Управления в Клиенте
Целью многих средств автоматического тестирования и скриптов является согласованная и повторяемая обработка интерфейса пользователя. Это может включать в себя модульное тестирование определенных элементов управления с помощью записи и воспроизведения скриптов проверки, которые проходят через ряд универсальных действий над группой элементов управления.
Сложностью, которая возникает из автоматических приложений, является трудность синхронизации проверки с динамической целью. Например, элемент управления "список", такой как в диспетчере задач Windows, отображает список запущенных приложений. Поскольку элементы в списке динамически обновляются независимо от тестового приложения, попытка повторить выбор определенного элемента в списке с любой последовательностью невозможна. Аналогичные проблемы также могут возникнуть при попытке повторить простые изменения фокуса в UI, который находится не под управлением тестового приложения.
Программный доступ
Программный доступ предоставляет возможность имитировать (с помощью кода) любое взаимодействие и отображение, обеспечиваемые обычным вводом с помощью мыши и клавиатуры. UI Automation позволяет получать программный доступ с помощью пяти указанных ниже компонентов.
Дерево UI Automation упрощает перемещение по структуре UI. Дерево строится из коллекции hWnd. Дополнительные сведения см. в разделе Общие сведения о дереве модели автоматизации пользовательского интерфейса.
Элементы Автоматизации — это отдельные компоненты в UI. Часто они могут быть более детализированы, чем hWnd. Дополнительные сведения см. в разделе Общие сведения о типах элементов управления автоматизации пользовательского интерфейса.
Свойства автоматизации содержат определенные сведения об элементах UI. Дополнительные сведения см. в разделе Общие сведения о свойствах автоматизированного пользовательского интерфейса.
Шаблоны элементов управления определяют определенный аспект функциональных возможностей элемента управления; они могут состоять из свойств, методов, событий и сведений о структуре. Дополнительные сведения см. в разделе Общие сведения о шаблонах элементов управления модели автоматизации пользовательского интерфейса.
События автоматизации обеспечивают уведомления и информацию о событиях. Дополнительные сведения см. в разделе Обзор событий автоматизации пользовательского интерфейса.
Ключевые свойства для автоматизации проверки
Возможность уникально идентифицировать и впоследствии найти любой элемент управления в пределах UI служит основой для приложений автоматизированной проверки для действий над UI. Существует несколько свойств Microsoft UI Automation, используемых клиентами и поставщиками, которые оказывают помощь в этом.
AutomationID
Однозначно идентифицирует элемент автоматизации среди элементов того же уровня. Свойство AutomationIdProperty не локализуется, в отличие, например, от свойства NameProperty, которое обычно локализуется, если продукт поставлен на нескольких языках. См. раздел Использование свойства AutomationID.
Примечание |
---|
AutomationIdProperty не гарантирует уникальную идентификацию по всему дереву автоматизации.Например, приложение может содержать элемент управления меню с несколькими элементами меню верхнего уровня, которые, в свою очередь, имеют несколько дочерних элементов меню.Эти элементы меню второго уровня могут идентифицироваться по универсальной схеме: "Item1", "Item2" и т. д., при этом разрешены повторяющиеся имена потомков элементов меню верхнего уровня. |
ControlType
Определяет тип элемента управления, представленный элементом автоматизации. Важные данные могут быть получены из знаний о типе элемента управления. См. раздел Общие сведения о типах элементов управления автоматизации пользовательского интерфейса.
NameProperty
Это текстовая строка, которая идентифицирует элемент управления или содержит пояснения к нему. Свойство NameProperty следует использовать с осторожностью, так как оно может быть локализовано. См. раздел Общие сведения о свойствах автоматизированного пользовательского интерфейса.
Реализация Автоматизации пользовательского интерфейса в тестовом приложении
Добавьте ссылки автоматизации интерфейса пользователя. |
Динамически загружаемые библиотеки UI Automation, необходимые для клиентов Автоматизации пользовательского интерфейса перечислены здесь.
|
Добавьте пространство имен System.Windows.Automation. |
Это пространство имен содержит все возможности UI Automation, которые нужно использовать клиентам Автоматизации Пользовательского Интерфейса, кроме обработки текста. |
Добавьте пространство имен System.Windows.Automation.Text. |
Это пространство имен содержит все возможности UI Automation, которые нужно использовать клиентам Автоматизации Пользовательского Интерфейса, кроме обработки текста. |
Поиск интересующих Элементов управления |
Скрипты автоматической проверки находят элементы Автоматизации Пользовательского Интерфейса, представляющие нужные элементы управления в дереве автоматизации. Есть несколько путей для получения элементов Автоматизации Пользовательского Интерфейса с кодом.
Примечание
AutomationIdProperty может быть получена с помощью инструмента, такого как UISpy.exe (UI Spy), способного выделить свойства UI Automation элемента управления.
См. раздел Получение элементов автоматизации пользовательского интерфейса. |
Получить шаблоны элемента управления |
Шаблоны элемента управления предоставляют общие характеристики для функциональных возможностей схожих элементов управления. После нахождения элемента управления, требующего проверки, автоматические скрипты проверки получают шаблоны элемента управления, затребованные из этих элементов Автоматизации Пользовательского Интерфейса. Например, шаблон элемента управления InvokePattern для обычных функциональных возможностей кнопки или шаблон элемента управления WindowPattern для функциональных возможностей окна. См. раздел Общие сведения о шаблонах элементов управления модели автоматизации пользовательского интерфейса. |
Автоматизации Пользовательского Интерфейса |
Скрипты автоматических тестов теперь могут управлять любым UI, затребованным из среды UI, используя сведения и функциональные возможности, предоставляемые шаблонами элементов управления UI Automation. |
Связанные средства и технологии
Ряд связанных средств и технологий, которые поддерживают автоматическую проверку с UI Automation.
UISpy.exe (UI Spy) — это приложение graphical user interface (GUI), которое может использоваться для сбора сведений UI Automation для разработки и отладки как поставщика, так и клиента. UI Spy включена в Windows Software Development Kit (SDK).
UIAutoCmd является средством командной строки с возможностями, равными UI Spy.
MSAABridge предоставляет сведения о UI Automation клиентам Active Accessibility. Основной целью переноса UI Automation к Active Accessibility является разрешить существующим клиентам Active Accessibility возможность взаимодействия с любой структурой, которая реализована с помощью UI Automation.
Безопасность
Сведения о безопасности содержатся в разделе Общие сведения о безопасности модели автоматизации пользовательского интерфейса.