Перфоманс Лаб

case study
нагрузочное тестирование
26 декабря, 2024

Как мы работали над тестированием системы кадрового электронного документооборота HRlink

Время чтения: 5 мин.
26 декабря, 2024
Автор:
Дарья Карпенко
Существует мнение, что на реализацию сложного и масштабного проекта требуется много времени. Однако при правильной постановке целей все процессы можно ускорить. На примере HRlink рассказываем, как у нас получилось за короткий срок протестировать систему, которая справляется с высокой нагрузкой и помогает бизнесам развиваться.

О проекте

Клиент:

«Инновации в управлении кадрами»

Продукт:

Высоконагруженная система кадрового электронного документооборота HRlink.

Функционал:

  • Подписание документов и доступ к сложным сценариям (последовательное, одностороннее, массовое подписание и др.)
  • Поддержка всех видов электронных подписей (УКЭП, УНЭП, УНЭП ЕСИА (Госключ), Госуслуги, ПЭП, подключение учетной записи Госуслуг в качестве подписи)
  • Интеграция с 1C, SAP, «БОСС-Кадровик», корпоративным порталом Битрикс24, порталом «Работа в России»
  • Управление документооборотом

Задача:

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

Цели:

  • Оценка производительности системы при увеличении нагрузки
  • Обеспечение устойчивости в моменты пиковых нагрузок
  • Выявление узких мест и рекомендации по их устранению

Вызовы проекта

Работа над HRlink была не совсем простой: нужно было создать среду, которая в полной мере отражала бы продуктивную. Масштабы требовали генерации значительного количества уникальных тестовых данных, чтобы адекватно имитировать реальную нагрузку. При этом важно было учесть все интерфейсы, цифровые подписи, работу эмуляторов внешних систем и других компонентов. 

Одним из препятствий стала работа над заглушкой сервиса для подписания документов «Астрал». Он имел минимальную документацию: были только примеры запросов / ответов и знания разработчиков — это усложняло процесс его моделирования. Также возникли трудности с сериализацией данных и их несоответствием с продуктивной средой. В итоге разработка и доработки заняли почти два месяца. 

Вторая проблема возникла с составлением профиля нагрузки. Изначально была предоставлена статистика для cloud storage, однако команда проводила тестирование on-premise, на собственных серверах. То есть данные были рассчитаны на сценарии, характерные для облачной инфраструктуры. Первые тесты не доходили и до 10% нагрузки, поэтому было необходимо повысить показатели для корректного тестирования.

Кроме того, не выполнялись требования к стенду

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

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

Процесс тестирования

Успешное проведение нагрузочного тестирования HRlink требовало планомерного и структурированного подхода. На протяжении трех месяцев команда «Перфоманс Лаб» проводила тесты стабильности и максимальной производительности, документировала результаты и совместно с разработчиками HRlink оперативно устраняла выявленные проблемы.

«Наша команда состояла из четырех человек. Подготовка заняла примерно полтора месяца: мы собирали профили, писали скрипты, настраивали мониторинг. Потом стали проводить пробные запуски. Были проблемы и со стендом, и с генерацией данных, но командно с разработчиками из HRlink все получилось решить. Мы каждый день сверялись, иногда организовывали дополнительные встречи по вопросам заказчика. Артефакты, которые написали, отчеты, заглушки — все мы передали коллегам из HRlink. В общем-то, у нас получилось провести хорошее нагрузочное тестирование, как минимум потому, что заказчик остался доволен. Это главный критерий».

автор кейса
Сергей Булатов
Ведущий инженер по нагрузочному тестированию
Для выполнения проекта были использованы разные технологии, которые сделали процесс тестирования максимально эффективным и адаптированным к задачам заказчика.

Boomq

1/4
это Low-Code инструмент для нагрузочного тестирования. С его помощью моделирование высоконагруженных процессов, например, массового подписания документов, выполняется быстро и может подстраиваться под нужную среду.

JMeter

2/4
подходит для моделирования работы множества пользователей, при этом позволяя точно настраивать параметры нагрузки — частоту запросов, их типы и последовательность.

Docker

3/4
применяется для создания изолированных сред для тестирования. Благодаря ему тесты запускаются в одинаковых условиях, а это особенно важно при работе с эмуляторами внешних систем и заглушками.

PostgreSQL

4/4

основная база данных системы. Высокая производительность и надежность позволили успешно провести стресс-тесты операций.

Упор был сделан на тестирование четырех ключевых сценариев, среди них — создание и подписание документов, отправка локальных нормативных актов (ЛНА), создание и обработка заявлений, выпуск и подписание УНЭП. Кроме того, были проработаны высокоинтенсивные методы, задействующие одновременно до 17 различных сервисов.

Три месяца работы и отличный итог — отлаженная система с высокой производительностью (она была увеличена в пять раз!) и готовностью к большой пользовательской нагрузке.

Результаты проекта

01

Проведены тесты стабильности — система готова выдерживать нагрузку до 10 млн пользователей без изменений в архитектуре

02

Максимальная производительность увеличена со 100% базового профиля до 500%

03

Производительность по ключевой операции подписания документа увеличена с 200 000 до 1 000 000 подписаний в сутки

04

Выявлены узкие места системы и проведена оценка проблемных компонентов

05

Разработаны два мока внешних систем

06

Разработаны сценарии для тестов в Boomq

rezultaty proekta

Также после технических работ команда провела обучение сотрудников HRlink. Благодаря этому они могут самостоятельно заниматься тестированием и пользоваться предоставленными рекомендациями по улучшению проекта.

Всего за три месяца «Перфоманс Лаб» смог оптимизировать систему, подготовить ее к росту пользовательской базы до 10 миллионов, улучшить время выполнения ключевых операций и обеспечить высокую стабильность платформы в условиях пиковых нагрузок. И что важнее всего — предложить заказчику новый взгляд на нагрузочное тестирование. Теперь HRlink имеет еще больше возможностей для дальнейшего успешного развития.

Почему это важно

Кадровый электронный документооборот, на котором специализируется HRlink, называют трендом уходящего 2024 года, особенно в IT-отрасли, и многие компании используют его как основной способ работы с документами. Это неудивительно — он ускоряет и облегчает бюрократические процессы и существенно снижает расходы. С 2021 года КЭДО стал доступен всем компаниям, соответствующие поправки есть в Трудовом кодексе РФ.

Наш клиент, «Инновации в управлении кадрами», является лидером в создании таких решений. На базе HRlink уже работают 30% IT-компаний, а платформа обладает важным для рынка функционалом: интеграцией с сервисами для цифровой подписи, внешними системами и возможностью реализации сложных технических решений.

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

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

Увеличьте производительность вашей системы до максимума и застрахуйте свой бизнес.