Выбрать страницу

Тесты производительности в основном проверяют скорость и надежность приложения и делятся на нагрузочных тестов (на основе цели) и стресс-тестов. С появлением гибких методов разработки возможность воспроизведения результатов нагрузочного тестирования стала главным приоритетом.

Каковы причины стресс-тестирования?

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

Каковы причины для целей на основе испытаний производительности?

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

Рассмотрим следующую ситуацию:

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

решение:

  1. Добавить ThinkTimes в скрипты
  2. Найдите базовое и единое время выполнения пользовательского скрипта, чтобы получить время сеанса
  3. Настройка рабочей нагрузки, включая максимальных пользователей, скорость транзакций на основе целей и время транзакций на основе цели
  4. Вы запустите тест производительности на основе цели для имитации ожидаемой нагрузки
  5. Просмотрите отчет об испытаниях и убедитесь, что тестируемое приложение смогло справиться с нагрузкой в согласованных границах времени отклика
  6. Повторите этот тестовый запуск в следующих четырех релизах и проверьте, удалось ли вашему приложению удерживать пороговые значения пропускной способности и времени отклика

Советы по настройке инструмента EveryStep

ThinkTime (требуется)

Создание новых ключевых слов в EveryStep Web Recorder (ThinkTimes) или повторное использование существующих ключевых слов

Убедитесь, что разрешенные значения являются плавающими точками 0,0 – 999,99

Убедитесь, что пользователи могут добавлять ThinkTimes вручную к сценариям

Помните, что ThinkTimes время ожидания и добавил EveryStep Web Recorder автоматически во время записи действий пользователя.

Там может быть N ThinkTimes в одном скрипте

ThinkTimes игнорируются в одном скрипте тестовых запусков

ThinkTimes будет использоваться в калибровке / Получить базовый

ThinkTimes не являются частью измерения времени отклика

ThinkTimes игнорируются в стресс-тестах

Пользовательная скоударность (необязательно)

Новое ключевое слово “WaitFor (количество пользователей)” в веб-регистраторе EveryStep

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

Пороговые значения времени отклика (по желанию)

Новое ключевое слово SetBoundary в веб-регистраторе EveryStep

Синтаксис: SetBoundary (Таймер, Связанные 1, Связанные 2)

Базовый уровень/калибровка (требуется)

LoadView выполняет один тестовый запуск пользователя

ThinkTimes будет использоваться в качестве сценария

LoadView рассчитает время сеанса

Время сеанса и время выполнения скрипта – ThinkTime

Настройка плана рабочей нагрузки/исполнения (требуется)

Клиент устанавливает наращивать время

Клиент устанавливает скорость транзакции цели

Клиент устанавливает время сеанса цели

Система вычисляет количество пользователей

Клиент решает, рассчитывать ли время отклика во время наращивания или нет

Вы запустите тест (требуется)

LoadView выполняет тест в соответствии с настроенным планом рабочей нагрузки/выполнения

LoadView собирает время отклика смоделированных скриптов или транзакций

LoadView динамически регулирует ThinkTime, чтобы достичь ожидаемой пропускной способности, если тестируемое приложение замедляется, ThinkTimes уменьшается. Если ThinkTimes равна нулю и время сеанса > получает время сеанса цели, будет поднято сообщение об ошибке, которое указывает на то, что ожидаемая пропускная способность не может быть достигнута.

LoadView вычисляет время отклика фактических транзакций и таймеров без ThinkTimes.

Советы по интеграции с Dotcom-Монитор

EveryStep веб-рекордер

Представляем новые ключевые слова ThinkTime

Игнорировать ThinkTime во время одного тестового заеха

Добавить ThinkTime во время записи сценария

Представляем новое ключевое слово WaitFor (пользователь номера)

Представляем новое ключевое слово SetBoundary (TimerName, B1, B2)

Ключевое слово WaitFor должно быть добавлено вручную к созданным скриптам

Используйте ключевое слово SetBoundary

Калибровка/получить базовый уровень

Рассчитать время сеанса во время калибровки

План исполнения/нагрузка

Вариант 1:

Добавление новой функции конфигурации рабочей нагрузки

Замена плана выполнения функцией рабочей нагрузки

Создание диалога конфигурации рабочей нагрузки для поддержки стресс-теста, цели транзакций и других типов

Укажите время наращивания

Проверьте поле для расчета времени отклика во время наращивания (да/нет)

Вариант 2:

Используйте функцию расширенной конфигурации плана выполнения

Выберите тип теста (стресс, на основе цели)

Установите сведения о цели транзакции

Укажите время наращивания

Проверьте поле для расчета времени отклика во время наращивания (да/нет)

Выветь тест

Рассчитать фактическое время выполнения скрипта/время сеанса

Динамически отрегулируйте ThinkTimes на основе фактического времени сеанса

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

сообщать

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

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

Что такое пользовательские входы?

ThinkTimes (Плавающая точка, > 0)

Цели транзакций в час (Integer)

Максимальное количество пользователей (Integer)

Ramp время (минуты)

Рассчитать время отклика во время наращивания (Да / Нет)

Что такое “Базовый уровень”?

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

Как динамически настроить тест нагрузки, если скорость транзакций изменяется в целевой системе?

Рассчитать время сеанса во время калибровки

Используйте ThinkTimes для достижения запрошенного времени сеанса цели

Пересчитать фактическое время сеанса во время выполнения теста

Динамически отрегулируйте ThinkTimes в зависимости от фактического времени сеанса

Сообщение об ошибке журнала, если время выполнения скрипта > является временем сеанса цели

Укажите количество максимальных пользователей при расчете рабочей нагрузки

Что такое ключевое слово WaitFor?

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

Что такое ключевое слово SetBoundary?

SAS определяют границы времени отклика для действий пользователя, таких как поиск клиента. Ключевое слово SetBoundary поможет вам проверить фактическую скорость определенного действия или таймера. Если разрешенная граница нарушена, появляется сообщение об ошибке, которое будет зарегистрировано в отчете теста. Проверка SLA гораздо проще с этим новым ключевым словом SetBoundary

Каковы должны быть ваши цели для вашего теста нагрузки?

  • 100 процентов сопоставимых тестов производительности в различных выпусках/исполнениях
  • Функция моделирования регулярных или пиковых нагрузок
  • Уверенность в том, что тестная система может справиться с ожидаемой нагрузкой в пределах согласованных границ
  • Сосредоточение оптимизации производительности на действиях пользователей, нарушивших согласованную границу

Какой тип отчетов следует настроить?

  • Создание отчетов, похожих на текущие отчеты
  • Avg, Мин, Макс, Stddev, Процентильный время отклика
  • Сделки в порядке, транзакции не удалось
  • Скорость ошибок
  • Все время отклика должно быть без ThinkTimes

Ограничения

Высокое время сеанса цели может привести к тайм-аутам сеансов и ложным срабатываниям. Рассмотрим ситуации, когда тайм-аут веб-сессии очень низок, например 10 минут. Если вы выполняете тест производительности на основе цели с простым скриптом, который выполняет логин и поиск клиентов, вы должны поместить ThinkTime между вагином и поиском. В этой гипотетической ситуации время сеанса должно быть 10 секунд, время сеанса цели 700 секунд. В этом сценарии ThinkTime будет выше, чем тайм-аут сеанса вашего приложения в тесте. Все ваши смоделированные транзакции потерпят неудачу, потому что ваш скрипт будет работать в тайм-ауте веб-сессии и не сможет выполнять поиск клиента.

Что произойдет, если мы не достигнем цели?

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

LoadView следит за фактическим временем сеанса во время выполнения теста и корректирует ThinkTimes, чтобы достичь ожидаемой скорости транзакций на основе цели.

LoadView также отображает сообщение об ошибках на экране мониторинга, если время сеанса превышает время сеанса цели.

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

Как выглядит рабочая нагрузка на основе выборки цели?

Сценарий / Устройство ST (сек))

Не редактируемый

GST (сек))

Ввод пользователя

TPH

Ввод пользователя

пользователь

Не редактируемый

Search_User 25 10 500 72
Inser_User 25 60 1000 216

Время наращивания: 15 минут

Измерьте время отклика во время Ramp up: Да / Нет
ST: Время сеанса

GST: Время сессии цели

TPH: Транзакции в час

Пользователь: Рассчитано по LoadView (3600 / TPH )