Привет, Хабр! Уже более двух лет мы разрабатываем систему Load IT, которая позволяет управлять нагрузочным тестированием. Сегодня мы хотим рассказать вам об этой системе и ее возможностях.
Load IT — система для управления нагрузочным тестированием. Ее основной целью является оптимизация затрат ресурсов и времени с помощью автоматизации и унификации операций и процедур, которые выполняет команда инженеров нагрузочного тестирования. Если говорить проще, мы упростили процесс проведения нагрузки, автоматизировав большую часть операций. Это помогло нам облегчить наш нелегкий труд, минимизировать затраты на повторяющихся операциях и сделать процесс нагрузки прозрачным для бизнес-заказчика.
На данный момент в системе можно:
собирать и запускать нагрузочные сценарии;
очищать окружение после тестов;
собирать артефакты тестирования;
мониторить тесты;
разрабатывать и отлаживать скрипты;
проводить чек-листы перед/после тестов;
разворачивать окружение для тестирования;
управлять тестовым окружением;
переиспользовать ресурсы и сущности внутри и между проектами.
Load IT позволяет вести полную историю запусков и результатов тестов, сценариев и отчетов, дает возможность использовать ранее созданный профиль нагрузки при построении сценариев, что значительно уменьшает время на запуск тестов.
Сейчас система базируется на JMeter, но в будущем мы планируем использовать и другие оpen source-решения, например, K6 и Galting.
А теперь предлагаем посмотреть, как же работает Load IT и какие возможности для нагрузочных тестирований есть в системе.
Работа в Load IT ведется в едином пространстве для всех участников проекта, процесс тестирования полностью прозрачный:
все в курсе того, что происходит в рамках своих проектов, благодаря уведомлениям внутри системы или на почту;
все видят проект в актуальном состоянии: запуски тестов, артефакты и результаты тестов, отчеты, сценарии тестов, логи.
Для работы команды в Load IT есть возможность добавить в систему сразу нескольких пользователей с разными ролями. Доступны две системные роли (администратор и супервизор) и четыре проектные (руководитель проекта, тест-менеджер, инженер нагрузочного тестирования и системный инженер по нагрузочному тестированию). От присвоенной роли зависит функционал, который будет доступен пользователю.
Когда администратор создал проект и добавил в него пользователей, можно начинать добавлять тестовое окружение, а именно серверы-генераторы и серверы объектов тестирования.
В системе для подключения к генераторам поддерживается протокол SSH, Docker Remote API, а также есть возможность использовать нативный агент для работы с генераторами по протоколу HTTP.
Генераторы и объекты тестирования:
можно привязывать/отвязывать к проектам;
производить чистку и проверку состояния работы;
можно видеть текущий статус соединения.
Load IT позволяет проводить четыре вида тестирования: тест поиска максимума, тест подтверждения стабильности, тест свободной конфигурации и отладочный тест. Тест может проводиться как по сценарию, который настроен вручную, так и по сценарию по профилю операции (настройка такого теста занимает около 30 секунд).
Для выполнения проверок до начала тестов или после можно использовать конвейеры задач, которые в Load IT представляют собой упрощенный аналог джобов и задач Jenkins или другой CI/CD-системы. Конвейер задач позволяет выполнить некоторые задачи/проверки перед тестом или после завершения теста (например, проверить утилизацию ресурсов перед запуском, очистить окружение или сгенерировать данные и т.д.).
Например, процесс запуска теста по сценарию по профилю будет выглядеть так:
Заходим в настройки теста, просматриваем дефолтные настройки, которые можно изменить, и добавляем два хранилища результатов в виде файла и БД Influx.
Привязываем к тесту конвейер задач и добавляем два генератора нагрузки.
После того как сценарий создан, его можно сохранить как шаблон или просто скачать, чтобы просмотреть его локально. Затем запускаем тест и ожидаем открытия страницы с мониторингом теста.
На открывшемся мониторинге теста мы можем видеть время запуска и окончания теста, выполнение задачи из конвейера задач, сценарий теста и привязывать мониторинг теста. Также можно просматривать логи хода теста и логи с генераторов нагрузки и вызывать остановку теста.
А еще в системе есть возможность конвертации трафика из har/saz в скрипт JMeter с последующей автоматической корреляцией параметров, поскольку родной рекодер трафика иногда работает некорректно и пропускает запросы/куки. Этот функционал значительно повышает скорость разработки и отладки скриптов для инженеров.
В Load IT реализовано большое количество различных инструментов, которые упростят работу по нагрузочным тестированиям. А в таблице ниже можно увидеть, что уже есть у нас, а чего еще не хватает по сравнению с похожими системами:

В планах у нас доработка запуска через API, анализ достижения целей нагрузочного тестирования по созданным инженером критериям и определение с помощью Load IT уровня максимальной производительности.
Если вас заинтересовала наша система Load IT, вы можете ее протестировать в течение 30 дней бесплатно. Мы будем рады вашей обратной связи, идеям и пожеланиям по доработке функционала.
А в следующем посте подробнее — от и до — расскажем о ее работе.