Нагрузочное тестирование системы WMS крупнейшего интернет-гипермаркета

Заказчик
ВсеИнструменты.ру
Руководитель проекта со стороны заказчика
ИТ-поставщик
Перфоманс Лаб
Год завершения проекта
2023
Сроки выполнения проекта
Апрель, 2023 - Июль, 2023
Масштаб проекта
1140 человеко-часов
Цели
  1. Определение максимальной производительности cистемы WMS.
  2. Проведение тестирования на выделенном продуктовом стенде и анализ результатов.
  3. Выявление «узких мест» — факторов, ограничивающих производительность системы.
  4. Передача компетенций заказчику и обогащение опыта штатной команды. Построение зрелых процессов QA и работа с отказоустойчивостью корпоративных систем.

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

Были обнаружены следующие дефекты:

— некорректные настройки сценария поиска максимальной производительности (решено командой «Перфоманс Лаб»);

— увеличение времени отклика у ручки shipmentOrderProducts под нагрузкой выше 100%;

— редиректы при отправке запросов из скриптов нагрузочного тестирования;

— важный дефект интерфейса: некорректная работа кнопок в разных регионах из-за отличий в организации работы складов.

По итогу работы команда «Перфоманс Лаб» разработала рекомендации для клиента:

— провести дополнительные исследования ручки shipmentOrderProducts, чтобы найти причины аномального поведения во время тестирования;

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

— провести новую итерацию поиска максимальной производительности системы WMS, используя обновленный сценарий от «Перфоманс Лаб». В нем учтены некорректные настройки, но не исправлена обнаруженная проблема с редиректами.

Верхняя граница при поиске максимальной производительности системы также осталась равна 200%;

— после получения результатов об уровне максимальной производительности WMS провести тестирование стабильности (надежности) длительностью не менее 6 часов, чтобы получить полноценную информацию о возможностях системы.

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

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

Уникальность проекта

Нагрузочное тестирование складской системы WMS для крупнейшего российского интернет-гипермаркета (более миллиона позиций). Тестирование проводилось в уникальных условиях:

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

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

Проект решает задачи импортозамещения
Нет
Использованное ПО

Apache JMeter — инструмент для проведения нагрузочного тестирования. В проекте применялся для моделирования сценариев пользовательского поведения и подачи нагрузки.

Grafana — инструмент для визуализации, мониторинга и анализа данных.

InfluxDB — система управления базами данных.

Сложность реализации
  • Из-за того, что у «ВсеИнструменты.ру» не было тестовых стендов, команде пришлось работать на базе продуктивного стенда. В связи с этим сроки тестирования были максимально сжаты, а количество тестовых «стрельб» –– ограничено. Кроме того, на инженеров легла ответственность за правильную изоляцию контуров друг от друга и максимально бережный процесс тестирования: слишком резкое увеличение порога нагрузки или неверные скрипты могли нарушить работу всей WMS и привести к огромным убыткам.

  • Еще одна сложность –– создание профиля нагрузки. Важно было учесть все бизнес-процессы для воссоздания реалистичных сценариев. Чтобы система работала корректно, инженерам потребовалось изучить активность в смежных подразделениях, учесть логистику и порядок действий сотрудников склада.

  • Для «ВсеИнструменты.ру» это был первый опыт нагрузочных тестов такого масштаба –– поэтому инженеры столкнулись с недостатком технической информации. Например, в расчетах был заложен кейс: 40 тысяч товаров разгружаются 40 минут. На продакшне оказалось, что кейс выполняется за 9 минут –– приходилось многое прогнозировать и корректировать.

Описание проекта

Строительный онлайн-гипермаркет «ВсеИнструменты.ру» имеет высокие показатели прироста клиентов и выручки. Была поставлена задача спрогнозировать расширение бизнеса и подготовить ключевые системы и инфраструктуру к новым нагрузкам. Чтобы оценить текущую производительность системы и найти узкие места, заказчик обратился к команде тестирования «Перфоманс Лаб». Работать предстояло с системой управления складом WMS, которая автоматизирует прием, хранение и отправку заказов клиентам. В случае сбоев хотя в пределах одного рабочего дня заказчик рисковал потерять огромные суммы и понести репутационный ущерб.

Из-за отсутствия тестового стенда на стороне клиента команда «Перфоманс Лаб» проводила работы на базе продуктивного контура. Для этих целей онлайн-гипермаркет выделил часть инфраструктуры и предложил тестировать систему в ночные часы определенных дней — таким образом риски сбоев были минимальными. Однако действия в рамках WMS, пусть система и служебная, сложно обратить в силу ее функционала.

Специалисты «Перфоманс Лаб» провели подготовку к работе: настроили инструменты тестирования, проанализировали систему, собрали прогнозы и статистику для бизнес-операций и сформировали профиль нагрузки. Затем команда приступила к разработке методики нагрузочного тестирования, настройке мониторинга с использованием InfluxDB и Grafana, разработке скриптов с помощью Apache JMeter и генерации пулов данных для тестирования. Для корректной работы сценария необходимо было учесть логистику компании и последовательность действий сотрудников на складе. Например, предусмотреть порядок приезда машины, ее разгрузки и распределения товара по полкам. Сложность поставленной задачи заключалась также в том, что в логике работы принимали участие еще две смежные системы. Команде была поставлена задача изучить бизнес процессы и воспроизвести интеграционные взаимодействия с промышленной интенсивностью.

После согласования с «ВсеИнструменты.ру» в определенные часы была произведена подача нагрузки на продуктивную среду. Продуктивный стенд состоял из трех дублирующих контуров, для работы команды в ночь с субботы на воскресенье, когда нагрузка на все системы была минимальна, онлайн  отключал один из этих контуров на 8–10 часов, а остальные контуры забирали трафик на себя.

География проекта
ЦФО и Сибирский ФО

Комментировать могут только авторизованные пользователи.
Предлагаем Вам в систему или зарегистрироваться.

Год
Предметная область
Отрасль
Управление
Мы используем файлы cookie в аналитических целях и для того, чтобы обеспечить вам наилучшие впечатления от работы с нашим сайтом. Заходя на сайт, вы соглашаетесь с Политикой использования файлов cookie.