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


Использование закодированных тестов пользовательского интерфейса в нагрузочных тестах

Чтобы определить насколько хорошо программное обеспечение отвечает различным уровням использования, проводятся нагрузочные тесты.Нагрузочные тесты моделируют ожидаемое использование программы путем моделирования множества пользователей, которые работают с программой одновременно.Дополнительные сведения см. в разделе Создание и изменение нагрузочных тестов.

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

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

Требования

  • Visual Studio Ultimate

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

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

ПримечаниеПримечание

Это упрощенный пример.Реальный тест должен также обрабатывать измерения времени при неудачном завершении входа.

Правильная реализация закодированного теста пользовательского интерфейса в нагрузочном тесте

  1. Измерение времени, затрачиваемого на загрузку страницы входа.

                TestContext.BeginTimer("UI Login Page Load");
    
  2. Этот вызов загружает страницу входа.

               UIMap.LoginPage();
    
  3. В любом измерении, выполняемом в веб-тесте, необходимо использовать метод WaitForReady.Он обеспечивает ожидание полного открытия формы.

               UIMap.UIHttpteamtestweb1STORWindow1.UIHttpteamtestweb1STORDocument.UIEmailEdit.WaitForControlReady();
               TestContext.EndTimer("UI Login Page Load");
    
    Предупреждающее замечаниеВнимание

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

  4. Эта функция заполняет форму входа.

               UIMap.FilledInLoginForm();
    
  5. Измерение продолжительности операции входа.

               TestContext.BeginTimer("UI Login");
               UIMap.LoggedIn();
    
  6. В любом измерении, выполняемом в веб-тесте, необходимо использовать метод WaitForReady.Он обеспечивает ожидание полного открытия страницы подтверждения входа.

               UIMap.UIHttpteamtestweb1STORWindow.UIHttpteamtestweb1STORDocument.UIWelcomeJamesBondwellPane.WaitForControlReady();
               TestContext.EndTimer("UI Login");
    

Ограничения использования закодированных тестов пользовательского интерфейса в нагрузочных тестах

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

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

Внешние ресурсы

Ff468125.collapse_all(ru-ru,VS.110).gifРуководство

Проверка для непрерывной доставки с Visual Studio 2012 – глава 6: панель элементов тестирования

См. также

Ссылки

WaitForControlReady

Основные понятия

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

Другие ресурсы

Создание и изменение веб-тестов производительности и нагрузочных тестов