Существует ли общая стратегия использования свойства AutomationID в приложении WPF / Silverlight?

#wpf #silverlight #ui-automation #acceptance-testing

#wpf #silverlight #пользовательский интерфейс-автоматизация #приемочное тестирование

Вопрос:

Свойства AutomationProperties.Прикрепленное свойство AutomationID, похоже, преследует две цели:

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

Учитывая, что существует много случаев, когда элементы управления пользовательского интерфейса генерируются во время выполнения (например, привязанные к данным древовидные представления), которые заставляют приемочные тесты искать элементы управления с использованием других средств, когда имеет смысл фактически устанавливать значение для AutomationID и какое значение? Является ли это обычным процессом для определения того, какие элементы управления должны иметь их, а какие нет? Или есть какое-то общее руководство, которому могут следовать все разработчики?

Ответ №1:

AutomationID действительно предназначен для тестирования, поэтому то, как вы его используете, зависит от того, как вы хотите протестировать свое приложение (или, для приложения, созданного командой, а не отдельным человеком, как тестовая группа хочет протестировать приложение). Ключевое использование AutomationID заключается в том, чтобы позволить тестовому коду надежно находить элемент без необходимости ссылаться на что-то вроде Name, которое может меняться в разных локализованных сборках (или которое может меняться по мере изменения пользовательского интерфейса во время разработки). Нет необходимости использовать AutomationID вообще; если у test есть какие-то другие способы идентификации элементов, они могут использовать это вместо этого и оставить AutomationID неназначенным.

Доступность обычно его не использует. Это ничего не значит для конечного пользователя и не гарантируется для любого данного элемента управления; поэтому с ним мало что можно сделать полезного.

Тестирование и доступность имеют много совпадений; есть части UIAutomation, которые обслуживают оба, но также и части, которые обслуживают только один или другой; AutomationID — это одна из частей, специально предназначенных для тестирования.

Ответ №2:

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