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

Этот раздел применим к:

Visual Studio Ultimate

Visual Studio Premium

Visual Studio Professional 

Visual Studio Express

Тема применяется Тема не применяется Тема не применяется Тема не применяется

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

Visual Studio Ultimate позволяет использовать до 250 виртуальных пользователей при локальном выполнении нагрузочного теста. Если для нагрузочного теста требуется больше виртуальных пользователей или если требуется использовать удаленный компьютер, необходимо приобрести Visual Studio Load Test Virtual User Pack 2010. Visual Studio Load Test Virtual User Pack 2010 можно купить там же, где была совершена покупка Visual Studio Ultimate. Дополнительные сведения см. в разделе Управление лицензиями виртуальных пользователей для нагрузочного тестирования с помощью контроллера тестирования и Настройка контроллеров и агентов тестирования для нагрузочного тестирования.

Если это модель с интенсивной нагрузкой, например, тысячи пользователей, посещающие веб-сайт одновременно, то будут нужны множество компьютеров для создания достаточной нагрузки. Для достижения этой цели можно настроить группу компьютеров для создания интенсивной нагрузки, моделируемой тестами. Это группа компьютеров состоит из одного или нескольких контроллеров тестирования и одного или нескольких агентов тестирования. Агенты тестирования выполняют тесты и могут создавать моделируемую нагрузку. Контроллер тестирования координирует работу агентов тестирования и собирает результаты тестирования; его необходимо настроить с использованием одного или нескольких пакетов Visual Studio Load Test Virtual User Pack 2010. Дополнительные сведения о настройке контроллеров тестирования и агентов тестирования см. в разделах Распределение нагрузочных тестов между несколькими тестовыми компьютерами с помощью контроллеров и агентов тестированияНастройка тестовых компьютеров для выполнения тестов или сбора данных и Установка и настройка агентов Visual Studio и контроллеров тестирования и построения.

Примечание

Также потребуется приобрести лицензии Visual Studio Load Test Virtual User Pack 2010 на то количество виртуальных пользователей, которое необходимо для работы каждого контроллера тестирования.

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

Примечание

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

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

Модульные тесты используются в нагрузочном тесте для проверки работы сервера с помощью API. Как правило, они предназначены для серверов, доступ к которым осуществляется не через браузер, а через "толстые" клиенты и прочие службы сервера. В качестве одного из примеров можно назвать приложение с интерфейсом Winforms или WPF, использующее WCF для связи с сервером. В данном случае разрабатываются модульные тесты для вызова WCF. Другим примером является другой сервер, который вызывает первый сервер с помощью веб-служб. Кроме того, возможны случаи, когда двухуровневые клиенты напрямую вызывают SQL. Тогда можно разработать модульные тесты для непосредственного вызова SQL. Дополнительные сведения о модульных тестах см. в разделе Проверка кода при помощи модульных тестов.

Нагрузочные тесты можно использовать в различных типах тестирования.

Тип тестирования

Описание

Тест состояния

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

Нагрузка

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

Производительность

Определяется быстрота отклика приложения.

Планирование емкости

Определяется работа приложения при различных значениях емкости.

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

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

Просмотр выполняющегося теста в анализаторе тестовой нагрузки

Представление диаграмм выполнения нагрузочного теста

Задачи

Используйте следующие разделы для изучения настройки и использования контроллеров тестирования и агентов тестирования.

Ключевые задачи

Связанные разделы

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

Создание тестов производительности и нагрузочных тестов. Можно создать нагрузочные тесты для измерения производительности и нагрузки с помощью Microsoft Visual Studio Ultimate.

Настройка выполнения нагрузочных тестов. Можно настроить способ выполнения нагрузочных тестов, чтобы проверить правильность их работы. Можно использовать группы компьютеров для моделирования рабочей нагрузки в целях тестирования, а также для одновременного удаленного выполнения тестов на нескольких компьютерах. Можно также настроить параметры запуска нагрузочного теста. Параметры запуска — это наборы свойств, которые влияют на способ выполнения нагрузочного теста. Параметры запуска организованы по категориям в окне "Свойства".

Выполнение нагрузочных тестов. Можно выполнять нагрузочные тесты и просматривать результаты по ходу выполнения тестов.

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

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

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

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

Создание отчета по анализу тенденций нагрузочных тестов. Для определения тенденций и уровней производительности можно по результатам нагрузочных тестов создать отчеты в формате Microsoft Excel.

Создание пользовательских подключаемых модулей нагрузочных тестов и веб-тестов производительности. С помощью API нагрузочных тестов и API веб-тестов производительности можно создавать пользовательские подключаемые модули нагрузочных тестов и веб-тестов производительности.

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

Безопасность

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

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

Видеоклипы

ссылка на видео

ссылка на видео

ссылка на видео

Форумы

Visual Studio Web Performance and Load Testing

Блоги

Ed Glas’s Blog

Sean Lumley’s Blog

Bill Barnett’s Blog

Howie Hilliker’s Blog

Краткое справочное руководство

Visual Studio Performance Testing Quick Reference Guide

См. также

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

Тестирование приложения

Проверка кода при помощи модульных тестов

Обзор анализатора тестовой нагрузки

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

Создание автоматических тестов