Привет, Хабр! Уже более двух лет мы разрабатываем систему 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-системы. Конвейер задач позволяет выполнить некоторые задачи/проверки перед тестом или после завершения теста (например, проверить утилизацию ресурсов перед запуском, очистить окружение или сгенерировать данные и т.д.).

Например, процесс запуска теста по сценарию по профилю будет выглядеть так: 

  1. Заходим в настройки теста, просматриваем дефолтные настройки, которые можно изменить, и добавляем два хранилища результатов в виде файла и БД Influx.

  2. Привязываем к тесту конвейер задач и добавляем два генератора нагрузки. 

После того как сценарий создан, его можно сохранить как шаблон или просто скачать, чтобы просмотреть его локально. Затем запускаем тест и ожидаем открытия страницы с мониторингом теста.

На открывшемся мониторинге теста мы можем видеть время запуска и окончания теста, выполнение задачи из конвейера задач, сценарий теста и привязывать мониторинг теста. Также можно просматривать логи хода теста и логи с генераторов нагрузки и вызывать остановку теста.

А еще в системе есть возможность конвертации трафика из har/saz в скрипт JMeter с последующей автоматической корреляцией параметров, поскольку родной рекодер трафика иногда работает некорректно и пропускает запросы/куки. Этот функционал значительно повышает скорость разработки и отладки скриптов для инженеров.

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

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

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

А в следующем посте подробнее — от и до — расскажем о ее работе.