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

Ответ

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

Вид тестирования Цель Пример сценария
Load Testing
(Нагрузочное)
Проверить поведение системы под ожидаемой нагрузкой. Определить производительность и соответствие требованиям. 1000 пользователей одновременно работают с корзиной покупок в течение 1 часа.
Stress Testing
(Стрессовое)
Найти предел производительности и точку отказа системы при нагрузке выше нормальной. Постепенно увеличивать число пользователей с 1000 до 5000, пока система не перестанет отвечать.
Spike Testing
(Пиковое)
Проверить реакцию системы на резкие, кратковременные скачки нагрузки. Мгновенно создать нагрузку в 3000 пользователей на 2 минуты, затем вернуться к нормальной.
Soak/Endurance Testing
(Тестирование стабильности)
Выявить проблемы, возникающие при длительной работе под средней нагрузкой (утечки памяти, деградация). 500 пользователей непрерывно используют систему в течение 48 часов.
Volume Testing
(Объемное)
Проверить обработку системой больших объемов данных. Загрузить в базу данных 10 миллионов записей и выполнить типовые операции поиска и отчетности.
Scalability Testing
(Тестирование масштабируемости)
Определить, как система увеличивает производительность при добавлении ресурсов (CPU, RAM, узлов). Измерить RPS при 2, 4 и 8 серверных узлах в кластере.

Практический пример конфигурации в JMeter:

Thread Group
├─ Number of Threads (users): 100  # Количество виртуальных пользователей
├─ Ramp-Up Period (seconds): 60    # Все пользователи "подключаются" за 60 секунд
└─ Loop Count: Forever             # Выполнять сценарий бесконечно (для soak-теста)

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

Ответ 18+ 🔞

А, ну это ж классика, блядь! Нагрузочное тестирование — это как проверять, насколько твоя тачка развалится, если в неё набиться дохуя народа, а потом ещё и кирпичей в багажник напихать.

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

Вид тестирования Цель (или "Что мы хотим от неё, блядь?") Пример сценария (или "Как её ебашить будем")
Load Testing
(Нагрузочное)
Посмотреть, как система себя ведёт под нормальной, рабочей нагрузкой. Не сломается ли она, когда все придут как обычно. 1000 человек одновременно тыкают в корзину, как будто чёрная пятница. Час смотрим, не легла ли она.
Stress Testing
(Стрессовое)
Найти точку, где всё пиздец. Нагружаем сверх нормы, пока система не скажет "всё, идите нахуй" и не накроется медным тазом. Плавно увеличиваем пользователей с 1000 до 5000. Смотрим, когда она начнёт хрипеть, а когда — просто откинет копыта.
Spike Testing
(Пиковое)
Проверить, что будет, если нагрузка въебется внезапно и ненадолго. Как система переживёт этот пиздец. Раз — и сразу 3000 пользователей на две минуты! Потом раз — и всё стихло. Выжила? Молодец.
Soak/Endurance Testing
(Тестирование стабильности)
Узнать, не начнёт ли система тихо сходить с ума от долгой работы. Утечки памяти, деградация — вся эта хуйня. 500 пользователей работают без перерыва двое суток. К концу система не должна превратиться в тыкву.
Volume Testing
(Объемное)
Проверить, как она жрёт огромные кучи данных. Не подавится ли. Запихнуть в базу 10 миллионов записей и попробовать что-то найти. Если поиск идёт дольше, чем я жду пиццу, — плохо.
Scalability Testing
(Тестирование масштабируемости)
Понять, помогает ли добавление железа. Или мы просто впустую деньги на сервера тратим, а отдачи — ноль ебать. Замеряем, сколько запросов в секунду вывозит кластер из 2, 4 и 8 серверов. Если с ростом узлов производительность не растёт — пидарас шерстяной, архитектура кривая.

Вот, например, как это в JMeter наколхозить, блядь:

Thread Group
├─ Number of Threads (users): 100  # Сколько этих виртуальных юзеров-извергов
├─ Ramp-Up Period (seconds): 60    # Они все подключатся не сразу, а плавненько за минуту
└─ Loop Count: Forever             # И будут долбить систему бесконечно (идеально для soak-теста, чтоб ей не жилось)

Короче, суть в чём: Каждый вид теста — это ответ на свой, ёбаный, вопрос. Один спрашивает "а ты вообще работать будешь?", другой — "а когда сдохнешь?", третий — "а если мы тебя долго мучать будем?". И только собрав все ответы, можно понять, стоит ли этой системе доверять или она развалится при первом же чихе пользователя.