QAQC

Нагрузочное тестирование. Что это и зачем оно нужно.

Итак, дорогой друг, сегодня мы разберемся, что же такое нагрузочное тестирование, и зачем оно тебе нужно.
Нагрузочное тестирование — это вид тестирования, позволяющий выявить, как будет вести себя система при больших нагрузках. Ведь если сайт (или что там у вас) успешно летал в космосе, когда на нем тусовались только разработчики и QA, то не факт, что он будет так же летать, когда там будет 100 (10 000) пользователей. Скорей всего, он будет ходить пешком, или вообще приляжет спать.
Нагрузочное тестирование призвано обезопасить от таких проблем. Основная его функция сводится к имитации действия N-количества пользователей в различных сценариях, которых тестировщик запускает на свой продукт.

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

Еще важно: в проде лучше нагрузочным тестированием не страдать.

Виды нагрузочного тестирования

Стресс-тестирование (stress testing).Увеличиваем нагрузку до заоблачных высот, и потом наблюдаем, как система возвращается к нормальному состоянию.

Пример: Дядя Петя позвал гостей, и купил 4 бутылки водки. По итогу на праздник жизни никто не пришел, и дяде Пете пришлось в соло нагрузить свой организм чудесным напитком. По прошествию какого-то времени дядя Петя вернулся из Нарнии, а за всем этим процессом наблюдал его пес. Вот пес и стал свидетелем стресс-тестирования.

Тестирование производительности (performance testing).Что делают:
1. увеличивают нагрузку, и исследуют производительность системы под нагрузкой
2. определяют, после каких значений система начинает плохо себя вести
3. исследуют и измеряют время отклика на запросы

Пример: Дядя Петя и дядя Федор решили весело провести вечер пятницы. Для этого они купили 10 банок пива. После первых 2-х банок все было хорошо (см. п.1). После 4-х банок начались дебаты (см п.2). Ну и после 5-ти банок дебаты спутились на самый приземленный уровень, речь стала подтормаживать (см. п.3)

Объемное тестирование (volume testing).Зачем: нагружают базу данных множеством информации, и смотрят, как это отражается на работе продукта.

Тестирование стабильности (reliability testing).В некоторых проектах под тестированием стабильности понимают тестирование свежесобранной ветки продукта целиком — мол, насколько она стабильна.
В действительности же тестирование стабильности — это нагрузочное тестирование, растянутое по времени на несколько дней, чтобы проверить, как при средних и высоких нагрузках на различных дистанциях ведет себя система.

Еще немного о нагрузочном тестировании.

Нагрузочное тестирование бывает распределенным и нераспределенным.Распределенное — это когда мы имитируем работу множества пользователей с > чем 1 компьютером. Многие современные системы довольно устойчивы к однотипным нагрузкам, тем более если у них 1 источник.
Для организации распределенного тестирования используются несколько компьютеров, которые подают нагрузку на систему, а управляет всем этим кластером верховный комп.
С нераспределенным — один комп — один источник нагрузки.
Инструменты:
Jmeter (classic)
LoadRunner
LoadComplete
OpenSTA и др.
Спасибо за внимание)

Еще чтиво
Made on
Tilda