Ответ
Основной фокус нагрузочного тестирования — серверные компоненты, так как они обрабатывают основную нагрузку:
- API (Backend-сервисы): Проверка времени ответа, пропускной способности и стабильности под высокой одновременной нагрузкой.
- Базы данных: Тестирование производительности запросов (SELECT, INSERT, UPDATE) при большом количестве соединений и данных.
- Микросервисы/Бэкенд-логика: Оценка масштабируемости и поиск узких мест (bottlenecks).
Почему именно серверная часть? Потому что она является распределителем ресурсов и обработчиком бизнес-логики для множества клиентов. Сбой здесь приводит к недоступности для всех пользователей.
Пример сценария для JMeter (тестирование API):
<ThreadGroup>
<numThreads>100</numThreads> <!-- 100 параллельных пользователей -->
<rampUp>60</rampUp> <!-- Наращивание нагрузки за 60 секунд -->
<loopCount>10</loopCount> <!-- 10 запросов на пользователя -->
</ThreadGroup>
<HTTPSampler>
<domain>api.example.com</domain>
<path>/v1/orders</path>
<method>POST</method>
</HTTPSampler>
Клиентская часть (UI) обычно не является целевым объектом для классического нагрузочного тестирования, но может тестироваться на отзывчивость под нагрузкой на бэкенде.
Ответ 18+ 🔞
Да ты посмотри, какая интересная хуйня получается! Всё, блядь, кричат: "Нагрузка! Нагрузка!", а куда эту нагрузку-то прикладывать, ебать мои старые костыли?
Так вот, слушай сюда, главный фокус — это серверная часть, вся эта кухня, которая у пользователя в телефоне не торчит. Почему? Да потому что это, сука, распределитель всего и вся! Если эта мартышлюшка ляжет, то всем нашим пользователям — пиzдец, в рот меня чих-пых. Все разом, как один, увидят либо ошибку, либо бесконечную загрузку. Вот и весь сказ.
На что конкретно надо давить, как последнему уродцу на дискотеке?
- API (Эти самые бэкенд-сервисы): Надо смотреть, как быстро он отзывается, сколько запросов в секунду проглатывает и не падает ли в обморок, когда сто человек одновременно начинают ему: "Дай! Положи! Обнови!".
- Базы данных: Вот тут вообще отдельная песня. Надо проверять, как она там SELECT'ами, INSERT'ами под сотней-другой соединений. Не начнёт ли она, хитрая жопа, отвечать через минуту, когда её по-нормальному спросишь.
- Микросервисы/Вся бэкенд-логика: Ищем, где у нас узкое горлышко, где эта конструкция начинает трещать и просить пощады. Масштабируемость, блядь, называется.
А клиентская часть (UI)? Ну её, в общем-то, специально грузить — это как ломиком открывать банку с икрой. Бессмысленно и дорого. Но! Когда сервер под нагрузкой пыхтит, как паровоз, надо глядеть — а не превращается ли наш красивый интерфейс в слайд-шоу из-за долгих ответов? Вот это — да, это важно.
Глянь, какой простой сценарий для JMeter'а, чтобы API потрогать:
<ThreadGroup>
<numThreads>100</numThreads> <!-- 100 юзеров одновременно, ёпта! -->
<rampUp>60</rampUp> <!-- Не сразу всех, а за минуту подпустим -->
<loopCount>10</loopCount> <!-- И каждый сделает по 10 запросов -->
</ThreadGroup>
<HTTPSampler>
<domain>api.example.com</domain>
<path>/v1/orders</path>
<method>POST</method> <!-- Пусть заказы создают, сука! -->
</HTTPSampler>
Вот запустишь такую штуку и сразу увидишь, где у твоего сервиса спина трещит, а где он, блядь, героически держится. Всё гениальное — просто, как три копейки.