Поделиться через


Рекомендации по тестированию пользовательского интерфейса

Azure DevOps Services | Azure DevOps Server 2022 — Azure DevOps Server 2019

При выполнении автоматических тестов в конвейере CI/CD может потребоваться специальная конфигурация для тестирования пользовательского интерфейса, например с помощью Selenium, Appium или Coded. В этой статье описываются типичные рекомендации по выполнению тестов пользовательского интерфейса.

Необходимые компоненты

Ознакомьтесь с агентами и развертыванием агента в Windows.

Режим без головы или видимый режим пользовательского интерфейса?

При запуске тестов Selenium для веб-приложения можно запустить браузер двумя способами:

  1. Режим без головы. В этом режиме браузер работает как обычный, но без видимых компонентов пользовательского интерфейса. Хотя этот режим не полезен для просмотра в Интернете, он полезен для выполнения автоматических тестов в автоматическом режиме в конвейере CI/CD. Браузеры Chrome и Firefox можно запускать в режиме без головы.

    Этот режим обычно потребляет меньше ресурсов на компьютере, так как пользовательский интерфейс не отображается и тесты выполняются быстрее. В результате потенциально больше тестов можно выполнять параллельно на одном компьютере, чтобы сократить общее время выполнения теста.

    Снимки экрана можно записать в этом режиме и использовать для устранения неполадок.

    Примечание.

    Браузер Microsoft Edge в настоящее время не может быть запущен в режиме без головы.

  2. Режим видимого пользовательского интерфейса. В этом режиме браузер работает обычно и компоненты пользовательского интерфейса видны. При выполнении тестов в этом режиме в Windows требуется специальная настройка агентов .

Если вы выполняете тесты пользовательского интерфейса для классического приложения, например тесты Appium с помощью WinAppDriver или закодированных тестов пользовательского интерфейса, требуется специальная конфигурация агентов .

Совет

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

Тестирование пользовательского интерфейса в видимом режиме пользовательского интерфейса

Для выполнения тестов пользовательского интерфейса в видимом режиме пользовательского интерфейса требуется специальная конфигурация.

Видимое тестирование пользовательского интерфейса с помощью агентов, размещенных майкрософт

Видимое тестирование пользовательского интерфейса не поддерживается в агентах, размещенных корпорацией Майкрософт. Тест завершается сбоем с сообщением об ошибке "элемент недоступен для взаимодействия". Размещенные корпорацией Майкрософт агенты поддерживают тестирование браузера без головы.

Тестирование пользовательского интерфейса в режиме без головы с помощью размещенных в Майкрософт агентов

Агенты, размещенные корпорацией Майкрософт, предварительно настроены для тестирования пользовательского интерфейса и тестов пользовательского интерфейса для веб-приложений. Агенты, размещенные корпорацией Майкрософт, также предварительно настроены с популярными браузерами и соответствующими версиями веб-драйверов, которые можно использовать для выполнения тестов Selenium. Браузеры и соответствующие веб-драйверы обновляются периодически. Дополнительные сведения о выполнении тестов Selenium см. в разделе "Тест пользовательского интерфейса" с selenium.

Видимое тестирование пользовательского интерфейса с помощью локальных агентов Windows

Агенты, настроенные для запуска от имени службы, могут выполнять тесты Selenium только с помощью браузеров без головы. Если вы не используете браузер без головы или выполняете тесты пользовательского интерфейса для классических приложений, агенты Windows должны быть настроены для запуска в качестве интерактивного процесса с включенным автологом.

При настройке агентов при появлении запроса на запуск от имени службы нажмите кнопку "Нет". Последующие шаги позволяют настроить агент с помощью автологона. При выполнении тестов пользовательского интерфейса приложения и браузеры запускаются в контексте пользователя, указанного в параметрах автолога.

Если вы используете удаленный рабочий стол для доступа к компьютеру, на котором работает агент с автоматическим журналом, просто отключение удаленного рабочего стола приводит к блокировке компьютера, и все тесты пользовательского интерфейса, выполняемые в этом агенте, могут завершиться ошибкой. Чтобы избежать сбоя, используйте команду tscon на удаленном компьютере, чтобы отключиться от удаленного рабочего стола. Например:

%windir%\System32\tscon.exe 1 /dest:console

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

for /f "skip=1 tokens=3" %%s in ('query user %USERNAME%') do (
  %windir%\System32\tscon.exe %%s /dest:console
)

Сохраните пакетный файл и создайте ярлык рабочего стола, а затем измените свойства ярлыка на "Запуск от имени администратора". Выполнение пакетного файла из этого ярлыка отключается от удаленного рабочего стола, но сохраняет сеанс пользовательского интерфейса и позволяет выполнять тесты пользовательского интерфейса.

Агенты подготовки в виртуальных машинах Azure для тестирования пользовательского интерфейса

Если вы подготавливаете виртуальные машины (виртуальные машины) в Azure, конфигурация агента для тестирования пользовательского интерфейса доступна с помощью артефакта агента для DevTest Labs.

agentArtifactDTL

Настройка разрешения экрана

Перед выполнением тестов пользовательского интерфейса может потребоваться настроить разрешение экрана, чтобы приложения отображались правильно. Для этого задача разрешения экрана доступна из Marketplace. Используйте эту задачу в конвейере, чтобы задать разрешение экрана значением, которое поддерживается компьютером агента. По умолчанию эта программа устанавливает разрешение на оптимальное значение, поддерживаемое компьютером агента.

Если возникают сбои с помощью задачи разрешения экрана, убедитесь, что агент настроен для запуска с включенным автологом и что все сеансы удаленного рабочего стола безопасно отключены с помощью команды tscon , как описано выше.

Примечание.

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

Устранение неполадок в тестах пользовательского интерфейса

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

Захват снимков экрана

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

Если вы используете задачу тестирования Visual Studio для выполнения тестов, для получения доступа к тестовой отчету необходимо добавить снятые снимки экрана. Для этого используйте следующий код:

Сначала убедитесь, что TestContext определен в тестовом классе. Например: public TestContext TestContext { get; set; }

Добавление файла снимка экрана с помощью TestContext.AddResultFile(fileName); //Where fileName is the name of the file.

Если вы используете задачу "Опубликовать результаты теста" для публикации результатов, вложения результатов теста можно публиковать только в том случае, если используется формат результатов VSTest (TRX) или формат результатов NUnit 3.0.

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

Запись видео

Если вы используете задачу тестирования Visual Studio для выполнения тестов, видео теста может быть записано и автоматически доступно в виде вложения к результату теста. Для этого необходимо настроить сборщик видеоданных в файле runsettings, а этот файл должен быть указан в параметрах задачи.

runSettings

Справка и поддержка