Что такое стресс-тестирование?
STRESS TESTING — это тип тестирования программного обеспечения, который проверяет стабильность и надежность системы. Этот тест в основном измеряет систему на ее устойчивость и способность обрабатывать ошибки в условиях чрезвычайно высокой нагрузки.
Стресс-тестирование проводится, чтобы убедиться, что система не будет аварийно завершать работу в критических ситуациях. Он даже тестирует за пределами нормальной рабочей точки и оценивает, как система работает в таких экстремальных условиях.
В программной инженерии стресс-тестирование также известно как тестирование на выносливость. При стресс-тестировании AUT подвергается стрессу в течение короткого периода времени, чтобы узнать его выдерживающую способность. Наиболее распространенным применением стресс-тестирования является определение предела, при котором система или программное или аппаратное обеспечение ломается . Он также проверяет, демонстрирует ли система эффективное управление ошибками в экстремальных условиях.
Тестируемое приложение будет загружено, когда данные 5 ГБ будут скопированы с веб-сайта и вставлены в блокнот. Блокнот находится в состоянии стресса и выдает сообщение об ошибке «Не ответили».
В этом уроке вы узнаете
- Что такое стресс-тестирование?
- Потребность в стресс-тестировании
- Цели стресс-тестирования
- Нагрузочное тестирование и стресс-тестирование
- Типы стресс-тестирования
- Как сделать стресс-тестирование?
- Инструменты, рекомендуемые для стресс-тестирования
- Метрики для стресс-тестирования
Потребность в стресс-тестировании
Рассмотрим следующие сценарии —
- Во время фестиваля сайт покупок в Интернете может стать свидетелем резкого увеличения трафика или объявления о продаже.
- Когда блог упоминается в ведущей газете, он испытывает внезапный всплеск трафика.
Обязательно проводить стресс-тестирование, чтобы приспособиться к таким аномальным скачкам трафика. Неспособность приспособить этот внезапный трафик может привести к потере дохода и репутации.
Стресс-тестирование также чрезвычайно полезно по следующим причинам:
- Проверить, работает ли система в ненормальных условиях.
- Отображение соответствующего сообщения об ошибке, когда система находится в состоянии стресса.
- Отказ системы в экстремальных условиях может привести к огромной потере дохода
- Лучше быть готовым к экстремальным условиям, выполнив стресс-тестирование.
Цели стресс-тестирования
Целью стресс-тестирования является анализ поведения системы после сбоя. Чтобы стресс-тестирование было успешным, система должна отображать соответствующее сообщение об ошибке, пока оно находится в экстремальных условиях.
Для проведения стресс-тестирования иногда могут использоваться массивные наборы данных, которые могут быть потеряны во время стресс-тестирования. Тестеры не должны терять эти данные, связанные с безопасностью, во время стресс-тестирования.
Основная цель стресс-тестирования — убедиться, что система восстанавливается после сбоя, который называется восстановимостью .
Нагрузочное тестирование и стресс-тестирование
Нагрузочное тестирование | нагрузочное тестирование |
---|---|
Нагрузочное тестирование предназначено для тестирования поведения системы в нормальных условиях рабочей нагрузки, и это просто тестирование или моделирование с реальной рабочей нагрузкой. | Стресс-тестирование заключается в тестировании поведения системы в экстремальных условиях и проводится до сбоя системы. |
Нагрузочное тестирование не сломает систему | Стресс-тестирование пытается сломать систему, тестируя с подавляющими данными или ресурсами. |
Типы стресс-тестирования:
Ниже приведены виды стресс-тестирования, которые объясняются следующим образом:
Распределенное стресс-тестирование:
В распределенных клиент-серверных системах тестирование выполняется на всех клиентах с сервера. Роль стресс-сервера заключается в распространении набора стресс-тестов среди всех стресс-клиентов и отслеживании статуса клиента. После того, как клиент связывается с сервером, сервер добавляет имя клиента и начинает отправку данных для тестирования.
Между тем клиентские машины посылают сигнал или пульс, что он связан с сервером. Если сервер не получает никаких сигналов от клиентского компьютера, его необходимо дополнительно изучить для отладки. Из рисунка сервер может соединиться с 2 клиентами (Client1 и Client2), но он не может отправлять или получать сигнал от клиентов 3 и 4.
Ночная пробежка — лучший вариант для запуска сценариев стресс-тестирования. Крупные серверные фермы нуждаются в более эффективном методе определения компьютеров, на которых произошел сбой нагрузки, которые необходимо изучить.
Стресс-тестирование приложения:
Это тестирование сосредоточено на поиске дефектов, связанных с блокировкой и блокировкой данных, проблемами сети и узкими местами производительности в приложении.
Транзакционное стресс-тестирование:
Проводится стресс-тестирование одной или нескольких транзакций между двумя или более приложениями. Он используется для тонкой настройки и оптимизации системы.
Системное стресс-тестирование:
Это комплексное стресс-тестирование, которое можно протестировать на нескольких системах, работающих на одном сервере. Он используется для поиска дефектов, когда данные одного приложения блокируют другое приложение.
Поисковое стресс-тестирование:
Это один из видов стресс-тестирования, который используется для тестирования системы с необычными параметрами или условиями, которые вряд ли произойдут в реальном сценарии. Он используется для поиска дефектов в неожиданных сценариях, таких как
- Большое количество пользователей вошли в систему одновременно
- Если антивирусный сканер запущен на всех машинах одновременно
- Если база данных отключилась, когда к ней обращались с веб-сайта,
- Когда большой объем данных вставляется в базу данных одновременно
Как сделать стресс-тестирование?
Процесс стресс-тестирования можно выполнить в 5 основных этапов:
- Планирование стресс-теста. Здесь вы собираете системные данные, анализируете систему, определяете цели стресс-теста
- Создание сценариев автоматизации. На этом этапе вы создаете сценарии автоматизации стресс-тестирования, генерируете тестовые данные для стресс-сценариев.
- Выполнение скрипта: На этом этапе вы запускаете скрипты автоматизации стресс-тестирования и сохраняете результаты стресса.
- Анализ результатов: на этом этапе вы анализируете результаты стресс-теста и выявляете узкие места.
- Настройка и оптимизация. На этом этапе вы настраиваете систему, изменяете конфигурации, оптимизируете код с целью достижения желаемого ориентира.
Наконец, вы снова запускаете весь цикл, чтобы определить, что настройки дали желаемые результаты. Например, нет ничего необычного в том, что для достижения целей производительности требуется от 3 до 4 циклов стресс-тестирования.
Инструменты, рекомендуемые для стресс-тестирования:
LoadRunner
LoadRunner от HP — широко используемый инструмент нагрузочного тестирования. Результаты нагрузочных испытаний, сформированные Loadrunner, считаются эталонными.
Jmeter
Jmeter — инструмент тестирования с открытым исходным кодом. Это чистое Java- приложение для стресс- тестирования и тестирования производительности . Jmeter предназначен для охвата типов тестов, таких как нагрузка, функциональность, стресс и т. Д. Для работы требуется JDK 5 или выше.
Стресс-тестер
Этот инструмент обеспечивает подробный анализ производительности веб-приложения, предоставляет результаты в графическом формате и чрезвычайно прост в использовании. Никаких высокоуровневых сценариев не требуется и дает хороший возврат инвестиций.
Нео груз
Это популярный на рынке инструмент для тестирования веб- приложений и мобильных приложений. Этот инструмент может моделировать тысячи пользователей, чтобы оценить производительность приложения под нагрузкой и проанализировать время отклика. Он также поддерживает Cloud-Integrated — производительность, нагрузочное и стресс-тестирование. Он прост в использовании, экономичен и обеспечивает хорошую масштабируемость.
Метрики для стресс-тестирования
Метрики помогают оценить производительность Системы и, как правило, изучаются в конце Стресс-теста. Обычно используемые метрики —
Измерение масштабируемости и производительности
- Страниц в секунду: измеряет количество запрошенных страниц / секунду
- Пропускная способность: основной показатель — размер данных ответа / сек
- Раунды: количество запланированных тестовых сценариев по сравнению с количеством выполненных клиентом
Ответ приложения
- Время обращения: среднее время получения изображения или страницы.
- Время до первого байта: время, необходимое для возврата первого байта данных или информации
- Время страницы: время, необходимое для получения всей информации на странице
Отказы
- Failed Connections: Количество неудачных соединений, отклоненных клиентом (слабый сигнал)
- Failed Rounds: количество раундов, которые он провалил
- Failed Hits: количество неудачных попыток, предпринятых системой (неработающие ссылки или невидимые изображения)
Вывод
Целью стресс-тестирования является проверка системы в экстремальных условиях. Он контролирует системные ресурсы, такие как память, процессор, сеть и т. Д., И проверяет способность системы вернуться к нормальному состоянию. Он проверяет, отображает ли система соответствующие сообщения об ошибках в состоянии стресса.