Локальное нагрузочное тестирование в Java с использованием Virtual Threads

Wait 5 sec.

Всем привет! Меня зовут Михаил, я работаю главным экспертом в ОТП Банке.Я люблю тестировать свои решения и почти всегда пишу unit- и integration-тесты. Но вот с нагрузочным тестированием ситуация обычно совсем другая: о нем вспоминают ближе к релизу, когда архитектуру уже поздно менять.В какой-то момент я поймал себя на мысли:А как вообще заранее понять, сколько ресурсов будет потреблять сервис под нагрузкой?Сколько памяти съест приложение? Когда упрется в CPU? Как поведет себя БД при разном кол-ве запросов?Чтобы ответить на эти вопросы, я написал небольшую библиотеку для локального нагрузочного тестирования на Java Virtual Threads. Она запускает большое количество задач, собирает метрики и формирует отчет - прямо в консоли или в CSV.Сегодня я покажу сам подход, разберу код библиотеки и оставлю ссылку на GitHub-репозиторий, чтобы вы могли попробовать ее у себя или адаптировать под свои задачи. Читать далее