Рекомендации по выполнению закодированных тестов пользовательского интерфейса
В этом разделе описаны рекомендации по разработке закодированных тестов пользовательского интерфейса.
Рекомендации
При разработке закодированных тестов пользовательского интерфейса используйте следующие рекомендации.
По возможности используйте построитель закодированных тестов пользовательского интерфейса.
Не изменяйте файл UIMap.designer.cs напрямую. Все изменения в этом файле будут перезаписаны.
Создавайте тест как последовательность записанных методов. Дополнительные сведения о записи методов см. в разделе Практическое руководство. Создание закодированного теста пользовательского интерфейса.
Каждый записанный метод должен действовать как одна страница, форма или диалоговое окно. Для каждой новой страницы, формы или диалогового окна необходимо создать отдельный метод.
При создании метода заменяйте его имя по умолчанию значащим именем. Значащее имя поможет определить назначение метода.
По возможности ограничьте длину каждого записанного метода 10 действиями. Такой модульный подход упростит замену метода в случае изменения пользовательского интерфейса.
Создавайте все утверждения с помощью построителя закодированных тестов пользовательского интерфейса, который автоматически добавляет метод утверждения в файл UIMap.Designer.cs.
В случае изменения пользовательского интерфейса перезапишите методы теста и методы утверждений или перезапишите разделы существующего метода теста, на которые повлияли изменения.
Для каждого модуля тестируемого приложения создайте отдельный файл UIMap. Дополнительные сведения см. в разделе Тестирование крупного приложения с несколькими картами пользовательского интерфейса.
Используйте значащие имена при создании элементов управления пользовательского интерфейса в тестируемом приложении. В результате этого повышается смысловое значение и удобство использования автоматически создаваемых имен элементов управления.
При создании утверждений путем написания кода с помощью API создайте метод для каждого утверждения в части класса UIMap, который находится в файле UIMap.cs. Для выполнения утверждения вызывайте соответствующий метод из метода теста.
При непосредственном написании кода с помощью API максимально широко используйте в коде свойства и методы классов, создаваемых в файле UIMap.Designer.cs. Эти классы обеспечивают более высокий уровень удобства, надежности и производительности работы.
Закодированные тесты пользовательского интерфейса автоматически адаптируются ко множеству изменений в пользовательском интерфейсе. Если, например, элемент пользовательского интерфейса изменил свое расположение или цвет, в большинстве случаев закодированный тест пользовательского интерфейса по-прежнему будет правильно определять этот элемент.
В ходе тестового запуска элементы управления пользовательского интерфейса обнаруживаются средой тестирования с помощью набора свойств поиска, которые применяются к каждому классу элемента управления в определениях, создаваемых построителем закодированных тестов пользовательского интерфейса в файле UIMap.Designer.cs. Свойства поиска содержат пары "имя свойства-значение свойства", которые можно использовать для определения элемента управления, например свойства FriendlyName, Name и ControlType элемента управления. Если свойства поиска не меняются, закодированный тест пользовательского интерфейса успешно обнаружит элемент управления в пользовательском интерфейсе. Если свойства поиска изменились, закодированный тест пользовательского интерфейса содержит интеллектуальный алгоритм сопоставления, в котором для обнаружения элементов управления и окон пользовательского интерфейса используются эвристические правила. При изменении пользовательского интерфейса предусмотрены средства изменения свойств поиска ранее определенных элементов для обеспечения возможности их обнаружения.
Что делать в случае изменения пользовательского интерфейса
В процессе разработки пользовательский интерфейс часто меняется. Ниже приведено несколько способов снижения последствий этих изменений.
Найдите записанный метод, который ссылается на этот элемент управления, и с помощью построителя закодированных тестов пользовательского интерфейса перезапишите действия данного метода. Можно использовать прежнее имя метода для перезаписи существующих действий.
Если элемент управления содержит утверждение, которое больше не является допустимым, выполните следующие действия.
Удалите метод, который содержит утверждение.
Удалите вызов этого метода из метода теста.
Добавьте новое утверждение путем перетаскивания кнопки с перекрестием на элемент управления пользовательского интерфейса. Откройте карту пользовательского интерфейса и добавьте новое утверждение.
Дополнительные сведения о записи закодированных веб-тестов пользовательского интерфейса см. в разделе Практическое руководство. Создание закодированного теста пользовательского интерфейса путем записи тестируемого приложения или Практическое руководство. Создание закодированного теста пользовательского интерфейса.
Что делать, если для продолжения теста необходимо дождаться завершения фонового процесса
Иногда для перехода к следующему действию пользовательского интерфейса требуется дождаться завершения некоторого процесса. Для этого можно использовать свойство WaitForReadyLevel для установки задержки перед продолжением теста, как показано в следующем примере.
// Set the playback to wait for all threads to finish
Playback.PlaybackSettings.WaitForReadyLevel = WaitForReadyLevel.AllThreads;
// Press the submit button
this.UIMap.ClickSubmit();
// Reset the playback to wait only for the UI thread to finish
Playback.PlaybackSettings.WaitForReadyLevel = WaitForReadyLevel.UIThreadOnly;
См. также
Задачи
Практическое руководство. Создание закодированного теста пользовательского интерфейса
Ссылки
UITesting
Основные понятия
Другие ресурсы
Тестирование крупного приложения с несколькими картами пользовательского интерфейса