Закодированный тест ИП позволяет выполнять функциональное тестирование интерфейса пользователя. Закодированный тест ИП реплицирует действия пользователя, отправляя ввод с клавиатуры/мыши элементу управления в пределах экрана. Одной из основных целей записи во время автоматизации является создание надежной логики поиска для определения элемента управления ИП во время воспроизведения. Существуют определенные требования доступности элементов управления, и закодированный тест ИП делает некоторые точные предположения для идентификации элемента управления. Инструмент закодированного теста ИП зависит от технологии ИП, которая используется в приложении, и на основе технологии ИП он использует связанные технологии для извлечения свойства и элементов управления форм.
Закодированный тест ИП поддерживает указанные ниже технологии ИП для выполнения поиска элементов управления.
- Тестирование Интернет Explorer: Использует библиотеку MSHTML, DOM для извлечения свойства и определения элементов управления, размещаемых в Internet Explorer.
- UIA: UI Automation-это новая платформа специальных возможностей для Microsoft Windows, доступных на всех операционных системах, которые поддерживают Windows Presentation Foundation (WPF).
- MSAA: Это сделано для элементов управления WinForms, элементов управления Win32, приложений MFC. Все элементы управления, которые не подходят для двух выше, собираются с MSAA.
Чтобы увидеть поддерживается ли элемент управления автоматизацию, закодированный тест ИП главным образом опирается на свойства Automation элемента управления.
Для элемента управления, чтобы иметь поддержку закодированных тестов ИП, необходимо наличие одного из ниже приведенных вариантов размещения:
- AutomationId,
- Name,
- LabeledBy,
- HelpText,
- AccessKey,
- AcceleratorKey
- DisplayText
- Source – в случае элемента управления Image
- Column Index — в случае Data Grid
Добавление поддержки элементов управления не определяемых закодированный тестом ИП
Платформа тестирования для закодированных тестов ИП и записи действий не поддерживает все возможные пользовательские интерфейсы. Она может не поддерживать конкретный пользовательский интерфейс, который вы хотите протестировать. Например, невозможно сразу создать закодированный тест ИП или запись действий для электронной таблицы Microsoft Excel. Однако можно создать собственное расширение для платформы закодированных тестов ИП, которое будет поддерживать ваш конкретный ИП, используя преимущества расширяемости закодированных тестов ИП.
Тестирование ИП для любого элемента управления можно включить путем реализации точки расширения, доступной в платформе тестирования ИП. Пользователь имеет возможность повторно использовать модуль теста ИП Visual Studio для расширения поддержки модели автоматизации ИП через реализацию соответствующей доступности для пользовательского элемента управления. Если вы создаете поддержку новой технологии ИП, у вас есть возможность определить уровень поддержки тестирования пользовательского интерфейса для вашей технологии. На основе уровня требуемой поддержки вам необходимо будет реализовать набор точек расширения в рамках теста пользовательского интерфейса. Платформа тестирования ИП в значительной степени зависит от технологии пользовательского интерфейса, который используется в приложении.
Сегодня на рынке существует большое количество технологий ИП и все время приходят новые. Кроме того, внешние поставщики создают дополнительный набор элементов управления пользовательского интерфейса, которые предоставляют богатые возможности для каждой из этих технологий. Ниже приводятся руководства, которые Microsoft использует для обеспечения поддержки тестирования ИП этих множеств технологий ИП.
Microsoft будет обеспечивать и поддерживать тестирование ИП для:
- Платформ Microsoft [Windows, Internet Explorer, Windows Phone, SharePoint, Office].
- Базовых элементов управления технологий разработки приложений [Windows Forms, Windows Presentation Foundation, Silverlight]
Для реализации поддержки тестирования пользовательского интерфейса для любого нового UI Framework вы можете использовать таблицу ниже, чтобы определить платформу тестирования ИП.
Технология | Реализация тестирования ИП |
Windows Forms | Microsoft Active Accessibility (MSAA) |
Windows Presentation Foundation | UI Automation (UIA) |
Internet Explorer | MSHTML |
Firefox | JavaScript и Firefox DOM |
Silverlight | Инъекции и отражения кода |
Таблица – Платформа тестирования ИП
Существующие пользовательские платформы технологии ИП не реализуют достаточной доступности для платформы тестирования ИП Visual Studio. Инструмент Закодированного теста ИП имеет различные точки расширения, в которые позволяют пользователям и партнерам встроить поддержку технологий, если она не поддерживается в продукте базово.
Точка расширения | Описание и использование |
Пакет расширения ( UITestExtensionPackage) | Точка входа для любого расширения UITest. |
Технологический адаптер ( UITechnologyManager, UITechnologyElement) | Используется для добавления поддержки технологий, не поддерживаемых инструментом из коробки. Например, используйте это для добавления поддержки для классов Java AWT. |
Правило фильтрации/агрегации ( UITestActionFilter) | Используется для добавления нового правила фильтрации или агрегации для записи. Например, добавьте правило агрегации для пользовательского элемента управления DataPicker для записи расширяемых действий SetValue для Даты вместо отдельных кликов. |
Провайдер свойств ( UITestPropertyProvider) | Используется для предоставления сведений о различных свойствах, поддерживаемых элементом управления и как использовать эти свойства. Например, используйте это для добавления дополнительных свойств в существующий элемент управления (скажем Today для WPF DatePicker). |
Сервис браузера ( BrowserFactory, BrowserService, BrowserHelper) | В дополнение к точке расширения адаптера технологии это необходимо для поддержки нового браузера. |
API Добавления\Изменения ( Mouse, Keyboard) | Настройка поведения действий мыши или клавиатуры. |
Объектная модель UITest ( UITestActionInvoker, UITest) | Прослушивание различных событий от UITest для выполнения некоторых пользовательских действий, или выполнить что-то другое при записи. |