Библиотека автоматизации пользовательского интерфейса Microsoft против кодированного теста пользовательского интерфейса - PullRequest
12 голосов
/ 05 февраля 2011

Я очень новичок в тестировании или автоматизации тестирования.Недавно я был назначен на проект по автоматизации тестирования пользовательского интерфейса приложения WPF.После небольшого поиска в MSDN и других, я немного запутался, стоит ли мне использовать библиотеку автоматизации пользовательского интерфейса Microsoft или новую функцию тестирования закодированного пользовательского интерфейса VS 2010. У меня нет четкого представления о том, какое из этих применений применимов каких сценариях, какие преимущества имеет одно перед другим и какое подходит мне (еще раз, у меня есть CAD-приложение WPF, которое пропускает множество AutomationIds, и я должен автоматизировать его тестирование пользовательского интерфейса).ПОЖАЛУЙСТА, ПОМОГИТЕ !!!

Ответы [ 4 ]

18 голосов
/ 18 января 2012

По сути, Microsoft UIA - это новая библиотека доступности в .Net 4.0. Приложения и элементы управления WPF имеют встроенную поддержку UIA через класс AutomationPeer.

Тест Coded-UI - это инструмент автоматизации Record & Play, в котором используется библиотека Microsoft UIA. Будучи инструментом по сравнению с написанием кода на C #, он повышает производительность QA для записи большего количества тестов.

Для приложений с запланированной поддержкой автоматизации достаточно Coded-Ui. Если идентификаторы AutomationID отсутствуют, убедитесь, что у элементов управления есть какое-то уникальное свойство, например Name. Используйте UIVerify или Inspect, чтобы проверить это.

Если НИКАКОЕ уникальное свойство не доступно, есть другие нижеупомянутые методы, которые вы можете использовать в сочетании с Coded-UI.

  • С мероприятия Когда ваше приложение получает событие автоматизации пользовательского интерфейса, исходный объект, передаваемый в ваш обработчик событий, является элементом AutomationElement. Например, если вы подписались на события с измененным фокусом, источник, переданный вашему AutomationFocusChangedEventHandler, является элементом, который получил фокус. Для получения дополнительной информации см. Подписаться на события автоматизации пользовательского интерфейса.

  • Из точки: Если у вас есть экранные координаты (например, позиция курсора), вы можете получить AutomationElement, используя статический метод FromPoint.

  • Из дескриптора окна: Чтобы извлечь AutomationElement из HWND, используйте статический метод FromHandle.

  • Из Сфокусированного Управления: Вы можете получить AutomationElement, представляющий сфокусированный элемент управления, из статического свойства FocusedElement.

8 голосов
/ 06 февраля 2011

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

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

Кодовый тест пользовательского интерфейса, с другой стороны, все еще имеет код, однако он учитываетзапись шагов через данное приложение, которое вы тестируете, что значительно увеличит количество тестов, которые вы можете создать.

4 голосов
/ 22 сентября 2015

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

Я бы порекомендовал взглянуть на более высокоуровневые библиотеки.Вы упомянули один из них - кодированный интерфейс;другим хорошим выбором был бы белый из TestStack.Они оба подходят для разных проектов.Кодированный интерфейс хорош, когда вы не хотите вкладывать много усилий в свой набор тестов.В то же время, он не сильно масштабируется, поэтому, если вы собираетесь писать много тестов, вам лучше выбрать White.

Здесь я сравниваю две структуры более подробно:Интерфейс против белого

2 голосов
/ 14 февраля 2013

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

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

Bey

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...