Практические рекомендации по организации нагрузочного тестирования в крупных проектах: вопросы, конфигурация стенда, целевые метрики, ограничения, типовые ошибки и способы их избежать.
Visiology — российский разработчик решений для визуализации данных. Основной продукт компании — одноименная платформа Visiology, которая предназначена для построения аналитических дашбордов и регламентных отчетов в сфере бизнес-анализа.
Среди клиентов Visiology такие компании, как Роскосмос, Алроса, Русгидро, Русская медная компания, Россети, СберМегаМаркет, Газпром Недра и др.
При реализации проектов интеграторы часто используют продукты Visiology совместно с low-code платформой Loginom. С помощью Loginom выполняется подготовка и обогащение данных, расчет показателей, обучение моделей. Затем на базе платформы Visiology информация визуализируется и строятся аналитические дашборды.
Совместное использование этих двух платформ для анализа и визуализации данных реализуется просто, т.к. для Loginom имеется готовый коннектор к Visiology.
Часто при реализации масштабных BI-проектов, включающих этапы ETL-подготовки и визуализации возникает вопрос: выдержит ли система значительную нагрузку при обработке больших данных. Этот вопрос можно разбить на несколько специализированных:
Прежде чем начинать боевое применение системы, необходимо получить представление о ее продуктивности, работоспособности и надежности.
Тестирование нагрузки в BI-проектах отличается, например, от тестирования транзакционных или любых других систем. Поэтому процесс имеет свою специфику.
Во-первых, чем больше кейсов self-service, тем сложнее предсказать нагрузку. Во-вторых, необходимо учитывать множество труднопредсказуемых факторов:
Тестирование производительности — сложный проект, который занимает от двух недель до нескольких месяцев. Для его успешного проведения в команде специалистов обязательно должны быть архитектор, аналитик, специалист по тестированию производительности, специалист по конкретной BI-платформе — либо представитель вендора.
После формирования команды тестирования начинается анализ требований. Первоначально определяется целевая аудитория («read-only» пользователи, аналитик self-service, администратор…). Затем необходимо выявить стандартный профиль нагрузки, понять, какие запросы, транзакции, сценарии работы обычно использует большинство.
Далее происходит формирование целевых метрик нагрузочного тестирования. Например, время отклика (responce time): максимальное, минимальное, среднее, медиана, перцентиль. К базовым метрикам относятся также количество запросов в единицу времени (throughput) и надежность или безошибочность (reliability). При определении метрик важно учитывать требования к мощности и производительности самого сервера: процессор (CPU), оперативная память (RAM) и т.д.
На финальном этапе анализа требований происходит выбор вида тестирования производительности: нагрузочное (имитирует работу определенного количества пользователей), на выносливость (определяет корректность работы в течение продолжительного времени), стресс-тестирование (выявляет предел возможности системы), объемное, тестирование масштабируемости, spike-тестирование (проверяет работу в пике нагрузки).
После завершения анализа требований начинается подготовка стенда и выбор инструментов тестирования. Стандартная схема стенда тестирования приведена на рисунке.
1 — генератор нагрузки; 2 — сервера, отвечающие за application-слой; 3 — сервера, отвечающие за in-memory базу данных; 4 — хранилище данных; 5 — сервера, которые занимаются процессами преобразования.
В качестве генераторов нагрузки могут применяться такие фреймворки, как Apache JMeter, Яндекс.Танк, Puppeteer, PhantomJS, HP LoadRunner и другие.
Для проведения нагрузочного тестирования в компании Visiology наиболее часто применяется Apache JMeter. Данный инструмент не использует браузер при тестировании, а работает на уровне HTTP, эмулируя запросы реальных пользователей по сети.
Финальный этап нагрузочного тестирования — это непосредственно запуск и анализ полученных результатов. Общий алгоритм проведения тестирования следующий — целевые метрики должны находиться в нормальных пределах. Если по ним наблюдается резкое отклонение, это повод вернуться на предыдущий этап работ и проанализировать, корректно ли подготовлен стенд, правильно ли определены требования к тестированию и т.д.
При проведении тестирования могут быть допущены ошибки в самой процедуре. Наиболее типичные из них:
Помимо ошибок в крупных проектах могут быть следующие особенности:
Loginom и Visiology как комплексный инструмент для обработки и визуализации данных успешно прошли нагрузочное тестирование.
При использовании Loginom специалисты компании Visiology отмечают, что платформа — оптимальное решение для крупных проектов, в которых требуется визуальный ETL при наличии сложного pipeline. Loginom позволяет отслеживать всю цепочку преобразования данных, оперативно выявлять ошибки, при необходимости быстро менять сценарий анализа.
Подробнее о нагрузочном тестировании при реализации крупных BI-проектов в выступлении Никиты Ильина, главного архитектора компании Visiology:
Если вы хотите применять Loginom в сочетании с Visiology для обработки и визуализации данных, свяжитесь с нами.
Другие материалы по теме:
Quality Assurance и автоматизированное тестирование Loginom. Выступление Георгия Киселева
Простой визуальный ETL для BI. Интеграция Loginom и Visiology. Вебинар