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

Предоплата всего

Подписываем
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Предоплата всего
Подписываем
Лабораторная работа № 3:
Тема: Нагрузочный тест
Цель: Создание и проведение нагрузочного теста
Нагрузочное тестирование приложений предназначено для оценки функциональных характеристик приложения в различных условиях. Нагрузочный тест используется для инкапсуляции таких типов тестов как веб-тесты, модульные, обычные, упорядоченные тесты, которые затем одновременно выполняются виртуальными пользователями. При выполнении этих тестов под нагрузкой формируются определенные результаты, включая счетчики производительности и другие, которые отображаются в таблицах и диаграммах. Например, добавление веб-теста в нагрузочный тест позволяет смоделировать одновременное взаимодействие сотен пользователей, работающих с веб-приложением. Таким образом можно оценить функциональность веб-приложения при максимальной нагрузке до его развертывания, чтобы найти ошибки или узкие места приложения. Microsoft Visual Studio Team System Test Edition предоставляет средство для создания и выполнения нагрузочных тестов. При добавлении в нагрузочный тест веб-тестов моделируются действия пользователей в процессе открытия одновременных подключений к серверу и выполнения нескольких HTTP-запросов. В нагрузочном тесте можно установить свойства, которые будут применены к отдельным веб-тестам.
В данной лабораторной работе выполняются следующие задачи:
2. Обязательные компоненты для выполнения нагрузочного теста
Нагрузочный тест обладает рядом свойств, которые можно изменить с целью настройки моделируемой нагрузки. Рассмотрим применение мастера создания нагрузочных тестов для добавления веб-теста в нагрузочный тест.
Мастер содержит четыре различных раздела с несколькими страницами, на которых собираются параметры и информация о конфигурации нагрузочного тестирования:
4. Использование мастера создания нагрузочных тестов
Запустите мастер создания нагрузочных тестов
5. Изменение параметров сценария нагрузочного теста
Нагрузочные тесты включают один или несколько сценариев, которые используются для моделирования взаимодействия группы пользователей с серверным приложением. Сценарий — это способ группировки. Он состоит из набора тестов и свойств для запуска этих тестов под нагрузкой.
Существует возможность добавления дополнительных сценариев или изменения любых параметров сценария в редакторе тестовой нагрузки.
5.3 Выберите предпочтительное значение времени на обдумывание между итерациями теста. По завершении нажмите кнопку Далее.
Шаблон нагрузки определяет количество виртуальных пользователей, активных во время нагрузочного теста, и скорость добавления новых пользователей. Для достижения целей тестирования в нагрузочный тест можно включать несколько шаблонов нагрузки. Для каждого сценария в тесте необходимо указать шаблон.
Существует два типа моделируемой нагрузки: постоянная и пошаговая
Шаблон постоянной нагрузки используется для моделирования нагрузки, создаваемой пользователями, число которых не изменяется во время нагрузочного теста. Например, при выполнении теста состояния для веб-приложения может потребоваться установить постоянную нагрузку, создаваемую 20 пользователями.
Шаблон пошаговой нагрузки используется для моделирования нагрузки, создаваемой пользователями, число которых постепенно возрастает до определенного максимума. Для пошаговых нагрузок требуется указать значения Начальное число пользователей, Максимальное число пользователей, Длительность шага (секунд) и Число пользователей на шаге.
Например, пошаговая нагрузка с Начальным числом пользователей равным 1, Максимальным числом пользователей равным 100, Длительностью шага (секунды) равной 10 и Числом пользователей на шаге равным 1 создает шаблон пользовательской нагрузки, который начинается с 1 пользователя и возрастает на 1 каждые 10 секунд, пока не достигнет значения 100 пользователей.
Пошаговый шаблон можно использовать для увеличения нагрузки до тех пор, пока сервер не достигнет точки, при которой наблюдается значительное снижение производительности. По мере возрастания нагрузки сервер сможет с ней справляться, пока не исчерпает свои ресурсы. Пошаговая нагрузка предоставляет удобный способ определения количества пользователей, при котором это происходит. Кроме того, с помощью пошаговой нагрузки можно отслеживать ресурсы агента, чтобы проверить возможность агента создавать требуемую нагрузку.
Чтобы получить точные показатели для заданной нагрузки, как правило, требуется выполнить несколько запусков с различными значениями длительности шага и числа пользователей на шаге. С помощью пошаговых нагрузок часто можно увидеть начальные скачки, возникающие на каждом шаге при добавлении пользователей. Поддержание нагрузки на этом уровне позволяет измерить производительность системы, восстановившейся после начального скачка.
Способ моделирования набора тестов:
С помощью редактора тестовой нагрузки или мастера модели тестового набора указываются следующие типы тестовых наборов для сценария нагрузочного теста.
Процент, основанный на количестве запущенных тестов
Для каждого теста в наборе можно указать процент, определяющий частоту выбора теста в качестве следующего выполняемого теста. Например, следующим трем тестам можно назначить следующие процентные значения.
При использовании этого параметра следующий запускаемый тест будет выбран на основании назначенных значений. Это сделано без учета количества виртуальных пользователей, в данный момент выполняющих каждый тест.
Данная модель тестового набора определяет процент виртуальных пользователей, которые будут выполнять конкретный тест. При ее использовании выбор следующего запускаемого теста осуществляется не только на основании назначенных процентных значений, но и на основании процента виртуальных пользователей, в данный момент выполняющих конкретный тест. На любом этапе нагрузочного теста количество пользователей, выполняющих конкретный тест, максимально точно совпадает с назначенным распределением.
При установке скорости для тестового набора задается скорость выполнения теста для каждого виртуального пользователя для каждого теста в тестовом наборе. Для каждого теста эта скорость выражена в виде числа тестовых запусков на виртуального пользователя в час. Например, следующим тестам можно назначить следующую скорость для тестового набора.
При использовании модели установки скорости для тестового набора механизм среды выполнения нагрузочного теста гарантирует, что фактическая скорость запуска тестов меньше или равна указанной скорости. Если время выполнения тестов превышает продолжительность, определенную для указанного числа тестов, возвращается ошибка.
Нагрузочный тест состоит из одного или нескольких сценариев. Каждый сценарий содержит один или несколько веб-тестов или модульных тестов. Тестовый набор сценария объединяет различные характеристики, например набор тестов, содержащихся в сценарии, или распределение этих тестов внутри сценария.
Тесты будут добавлены в тестовый набор. Тестам в наборе автоматически назначается новое распространение.
После создания нагрузочного теста можно изменить тестовый набор для любого из сценариев:
В состав нагрузочного теста входит один или несколько сценариев, каждый из которых содержит один или несколько веб-тестов или модульных тестов. Каждый сценарий содержит один или несколько веб-обозревателей, которые используются для выполнения любых веб-тестов сценария.
Набор обозревателей сценария представляет собой сочетание двух факторов: набора обозревателей, входящих в сценарий, и распределения этих обозревателей внутри сценария. Набор обозревателей должен отражать цели каждого конкретного сценария. Например, можно определить набор обозревателей с процентной долей Internet Explorer 6.0, равной 95%, и процентной долей Pocket IE 3.02, равной 5%.
После создания нагрузочного теста можно изменить набор обозревателей для любого из его сценариев.
Нагрузочный тест состоит из одного или нескольких сценариев. Каждый сценарий содержит одну или несколько сетей. Смешанный сетевой профиль сценария представляет собой сочетание двух факторов: набора сетей, входящих в сценарий, и распределения этих сетей внутри сценария.
Смешанный сетевой профиль должен отражать цели каждого конкретного сценария. Например, можно определить сетевой набор обозревателей с процентной долей 75% локальных сетей и 25% подключений удаленного доступа через модем со скоростью 56 кбит/с.
После создания нагрузочного теста можно изменить смешанный сетевой профиль для любого из его сценариев.
10. Наборы счетчиков при нагрузочном тестировании.
При создании нагрузочного теста в Visual Studio Team System Test Edition указывается набор счетчиков. Набор счетчиков представляет собой счетчики производительности, используемые для наблюдения во время выполнения нагрузочного теста. Наборы счетчиков входят в нагрузочный тест и применяются ко всем его сценариям. Они упорядочены по технологии, например наборы счетчиков ASP.NET или SQL.
Данные наборов счетчиков собираются на указанных компьютерах. Связь между набором счетчиков и компьютером, используемым во время нагрузочного теста, называется сопоставлением набора счетчиков. Например, тестируемый веб-сервер может располагать сопоставлениями набора счетчиков приложений ASP.NET, IIS и .NET.
По умолчанию данные счетчиков производительности собираются на контроллере и агентах.
Добавление серверов, на которых выполняется тестирование, в список компьютеров для сбора данных счетчиков является важным моментом. Таким образом, все значимые системные данные собираются и отслеживаются во время нагрузочного теста.
Средства нагрузочного тестирования с помощью счетчиков собирают данные о производительности и отображают их на диаграмме. Данные счетчика снимаются через определенные пользователем интервалы во время выполнения нагрузочного теста. Счетчики можно просматривать во время выполнения или по завершении нагрузочного теста. Во время выполнения используется монитор тестовой нагрузки, а после выполнения — анализатор тестовой нагрузки.
Данные счетчиков собираются на сервере и на компьютере, где выполняется тест. Если для выполнения тестов установлен набор агентских компьютеров, данные счетчиков будут собраны и на них.
Существует три категории счетчиков: "Проценты", "Количество" и "Средние значения". Их примеры: "Загрузка ЦП: %", "Количество блокировок SQL Server" и "Количество запросов IIS в секунду".
Данные о производительности для отдельных HTTP-запросов выводятся на компьютере, где выполняется тест, например на агентском компьютере. Для запросов отслеживаются такие данные, как среднее время до получения первого байта, время ответа и число запросов в секунду.
Для упрощения сбора данных о производительности на веб-сервере в Test Edition предоставляются предопределенные именованные наборы счетчиков, основанные на технологии, используемой в нагрузочных тестах. Эти наборы можно использовать при анализе работы сервера с IIS, ASP.NET или сервера SQL Server. Счетчики, не указанные в наборе счетчиков по умолчанию, можно добавить с помощью редактора тестовой нагрузки. Добавление компьютеров или серверов, на которых выполняется тестирование, в нагрузочный тест для отслеживания ресурсов, используемых на этих компьютерах, является важным моментом.
Наборы счетчиков, подобно параметрам запуска, применяются не к отдельным, а ко всем сценариям нагрузочного теста. Другими словами, наборы счетчиков применяются ко всему нагрузочному тесту и должны отражать его цели.
11. Изменение параметров запуска для нагрузочного теста
При этом образуется нагрузочный тест со всеми параметрами, заданными с помощью мастера, и откроется редактор нагрузочного теста (файл с расширением .loadtest).
Пороговые правила
Главная задача счетчиков и наборов счетчиков в определении реальной производительности тестируемого приложения, использования памяти и времени, необходимого для процессора. Существует еще одно преимущество в сборе данных этих счетчиков. Мы можем установить пороговые значения для каждого типа данных, собранных во время теста. Например, нам может понадобиться получать уведомление когда системная память будет почти заполнена. Кроме того, если любой из процессов занимает больше времени, чем ожидалось, мы можем получить уведомление от системы, чтобы принять необходимые меры. Эти пороговые правила могут быть установлены для каждого из счетчиков производительности.
Выберите счетчик и пункт Add Threshold Rule, который открывает диалоговое окно добавления правил.
Есть два различных типа правил, которые могут быть добавлены. Одним из них является, сравнение с постоянным значением, а другой позволяет сравнивать значение со значением другого счетчика производительности. Следующие правила объясняют различные способы установления пороговых значений:
Compare Constant: Это сравнение значения счетчика производительности с постоянным значением. Например, мы хотим получить предупреждение типа “нарушение работы”, если процессор будет загружен на 70%, и “критическую ошибку” если его загрузка больше 90%. Опция Alert If Over может быть установлена в значение «истинна» или «ложь» , где «истина» означает что нарушение будет генерироваться в случае если значение счетчика больше заданного порового значения, а «ложь» будет обозначать что нарушение будет генерироваться если значение счетчика меньше указанного порогового значения.
На скриншоте выше, постоянное пороговое значение для запуска нарушения равно 70, для критического нарушения значение устанавливается равным 90.
Compare Counters(сравнение счетчиков): Это сравнение значения счетчика производительности с другими счетчиками. Функциональность как и при сравнении с константой. Но здесь сравнение идет с переменными значениями а не с постоянными.
На скриншоте выше показаны опции для добавления Compare Counters в набор счетчиков. Пороговые значения для предупреждения и критических ошибок установлены как константы, которые умножаются на зависимые значения счетчика, а затем сравниваются с его текущим значением. Например, зависимое значение счетчика равно 50 и если константа установлена в 1.25 как порог предупреждения, то нарушение наступит когда текущее значение счетчика достигнет 62.5.
Скриншот ниже показывает пример порогового нарушения, когда значение превышает константу определенную в правиле. Проверка прерывается, потому что тест был прерван, прежде чем завершился.
Вы можете видеть из графика, что есть три различных нарушения пороговых правил, представленных во время выполнения теста нагрузки. График также показывает, когда значения счетчика достигло значения выше константы, определенной в правиле. Как видно на графике, величина достигла значения 25.13204 что выше чем константа 25, определенная в правиле. Если значение выше допустимого уровня то оно обозначается желтым цветом и красным если оно достигает критической пороговой величины. Эти правила не провалят тест , но обеспечат предупреждение, если значения выше установленных порогов.
12. Запуск нагрузочного теста
После создания нагрузочного теста запустите его, чтобы увидеть, как веб-узел реагирует на моделирование нагрузки. При работе теста будет открыто окно Монитор тестовой нагрузки.
Чтобы запустить нагрузочный тест необходимы следующие действия: