Использование закодированных тестов пользовательского интерфейса в нагрузочных тестах
Чтобы определить насколько хорошо программное обеспечение отвечает различным уровням использования, проводятся нагрузочные тесты.Нагрузочные тесты моделируют ожидаемое использование программы путем моделирования множества пользователей, которые работают с программой одновременно.Дополнительные сведения см. в разделе Создание и изменение нагрузочных тестов.
Нагрузочные тесты в основном состоят из ряда веб-тестов производительности или модульных тестов, которые выполняются при моделировании нескольких пользователей в течение определенного периода времени.Нагрузочные тесты могут также включать автоматические закодированные тесты пользовательского интерфейса.Добавление закодированных тестов пользовательского интерфейса возможно только в определенных условиях.Все сценарии включения закодированных тестов пользовательского интерфейса в нагрузочные тесты подразумевают использование этих тестов в качестве тестов производительности.Это может быть полезным, поскольку закодированные тесты пользовательского интерфейса позволяют регистрировать производительность на уровне пользовательского интерфейса.Например, если приложение затрачивает 1 секунду на возвращение данные клиенту и 8 секунд на отображение данных в браузере, то проблему производительности этого типа невозможно выявить с помощью веб-теста производительности.
Другой сценарий использования закодированных тестов пользовательского интерфейса в нагрузочном тесте связан с трудностями, которые могут возникать при написании скриптов на уровне протокола для приложения.В этом случае можно временно создавать нагрузку с помощью кодирования действий пользовательского интерфейса, пока не будут написаны правильные скрипты для уровня протокола.
Требования
- Visual Studio Ultimate
Создание кода для измерений времени в закодированных тестах пользовательского интерфейса
По умолчанию из закодированных тестов пользовательского интерфейса, используемых в нагрузочных тестах, нельзя получить точные измерения времени, поскольку все вызовы являются асинхронными.Для получения точных измерений времени необходимо правильно реализовать закодированные тесты пользовательского интерфейса.Эту задачу можно выполнить с помощью метода 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 2012 – глава 6: панель элементов тестирования
См. также
Ссылки
Основные понятия
Другие ресурсы
Создание и изменение веб-тестов производительности и нагрузочных тестов