Использование закодированных тестов пользовательского интерфейса в нагрузочных тестах
Этот раздел применим к:
Visual Studio Ultimate |
Visual Studio Premium |
Visual Studio Professional |
Visual Studio Express |
---|---|---|---|
![]() |
![]() |
![]() |
![]() |
Чтобы определить насколько хорошо программное обеспечение отвечает различным уровням использования, проводятся нагрузочные тесты. Нагрузочные тесты моделируют ожидаемое использование программы путем моделирования множества пользователей, которые работают с программой одновременно. Дополнительные сведения см. в разделе Создание и изменение нагрузочных тестов.
Нагрузочные тесты в основном состоят из ряда веб-тестов производительности или модульных тестов, которые выполняются при моделировании нескольких пользователей в течение определенного периода времени. Нагрузочные тесты могут также включать автоматические закодированные тесты пользовательского интерфейса. Добавление закодированных тестов пользовательского интерфейса возможно только в определенных условиях. Все сценарии включения закодированных тестов пользовательского интерфейса в нагрузочные тесты подразумевают использование этих тестов в качестве тестов производительности. Это может быть полезным, поскольку закодированные тесты пользовательского интерфейса позволяют регистрировать производительность на уровне пользовательского интерфейса. Например, если приложение затрачивает 1 секунду на возвращение данные клиенту и 8 секунд на отображение данных в браузере, то проблему производительности этого типа невозможно выявить с помощью веб-теста производительности.
Другой сценарий использования закодированных тестов пользовательского интерфейса в нагрузочном тесте связан с трудностями, которые могут возникать при написании скриптов на уровне протокола для приложения. В этом случае можно временно создавать нагрузку с помощью кодирования действий пользовательского интерфейса, пока не будут написаны правильные скрипты для уровня протокола.
Создание кода для измерений времени в закодированных тестах пользовательского интерфейса
По умолчанию из закодированных тестов пользовательского интерфейса, используемых в нагрузочных тестах, нельзя получить точные измерения времени, поскольку все вызовы являются асинхронными. Для получения точных измерений времени необходимо правильно реализовать закодированные тесты пользовательского интерфейса. Эту задачу можно выполнить с помощью метода WaitForControlReady. В следующих фрагментах кода демонстрируется решение данной задачи для страницы кода.
Примечание
Это упрощенный пример.Реальный тест должен также обрабатывать измерения времени при неудачном завершении входа.
Правильная реализация закодированного теста пользовательского интерфейса в нагрузочном тесте
Измерение времени, затрачиваемого на загрузку страницы входа.
TestContext.BeginTimer("UI Login Page Load");
Этот вызов загружает страницу входа.
UIMap.LoginPage();
В любом измерении, выполняемом в веб-тесте, необходимо использовать метод WaitForReady. Он обеспечивает ожидание полного открытия формы.
UIMap.UIHttpteamtestweb1STORWindow1.UIHttpteamtestweb1STORDocument.UIEmailEdit.WaitForControlReady(); TestContext.EndTimer("UI Login Page Load");
Предупреждение
Время, затрачиваемое на заполнение формы, не должно включаться в таймер.При записи формируйте код из средства записи после заполнения формы, но до ее отправки.
Эта функция заполняет форму входа.
UIMap.FilledInLoginForm();
Измерение продолжительности операции входа.
TestContext.BeginTimer("UI Login"); UIMap.LoggedIn();
В любом измерении, выполняемом в веб-тесте, необходимо использовать метод WaitForReady. Он обеспечивает ожидание полного открытия страницы подтверждения входа.
UIMap.UIHttpteamtestweb1STORWindow.UIHttpteamtestweb1STORDocument.UIWelcomeJamesBondwellPane.WaitForControlReady(); TestContext.EndTimer("UI Login");
Ограничения использования закодированных тестов пользовательского интерфейса в нагрузочных тестах
Закодированные тесты пользовательского интерфейса моделируют действия мыши и клавиатуры. Поэтому для каждого агента закодированные тесты пользовательского интерфейса может выполнять только один виртуальный пользователь. Оптимальный способ выполнения этого требования заключается в настройке отдельного сценария в нагрузочном тесте и задание одного пользователя в качестве нагрузки. При наличии нескольких тестов пользовательского интерфейса настройте последовательный тестовый набор. Дополнительные сведения см. в разделах Создание дополнительных сценариев для имеющегося нагрузочного теста и Изменение моделей тестовых наборов для указания вероятности запуска теста виртуальным пользователем.
Кроме того, агенты нагрузки необходимо настроить для выполнения в качестве интерактивного процесса, а не службы. Дополнительные сведения см. в разделе Установка и настройка агентов Visual Studio и контроллеров тестирования и построения.
См. также
Ссылки
Основные понятия
Другие ресурсы
Создание и изменение веб-тестов производительности и нагрузочных тестов