Load IT: как мы сделали инструмент для управления нагрузочным тестированием
Привет, Хабр! Уже более двух лет мы разрабатываем систему 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 дней бесплатно. Мы будем рады вашей обратной связи, идеям и пожеланиям по доработке функционала.
А в следующем посте подробнее — от и до — расскажем о ее работе.