Нагрузочное тестирование ИксБи Софтваре
Нагрузочное тестирование ИксБи Софтваре

Нагрузочное тестирование выполняется разово по заказу владельца продукта и часто представляет из себя отдельный проект со своим бюджетом, планом работ и командой. Как увеличить скорость загрузки сайта или интернет-магазина на Битрикс и как это скажется на конверсии. Прокси (направляем трафик из браузера через JMeter, вручную “прокликиваем” сайт, JMeter на основе этих данных сам составляет план тестирования). Да, 50 одновременных пользователей — это не совсем серьезно — даже на хаброэффект не потянет — но уже что-то. Надо больше — есть платная подписка (да — забыл сказать что все это бесплатно). В моем случае — 50 одновременных пользователей это та нагрузка, о которой я пока и не мечтаю в ближайшие несколько месяцев — так что мне было достаточно.

Запуск и анализ результатов нагрузочного тестирования

В идеальном мире сценарии тестирования должны полностью имитировать пользовательское поведение на сайте — переходы по страницам, процедуры авторизации и аутентификации, сброс и смену пароля, добавление/удаление товаров в корзину, оформление заказа и т д. Из которого следует — что если исключить максимальный пик в 5 секунд (в этот момент решил включиться Garbage Collector) — в остальном приложение вело себя хорошо — и не зависимо от количества пользователей — то есть — нагрузка в 50 пользователей сайт не нагружает — есть еще и запас хороший. Некоторые проекты тупо накрылись из-за того что эти проблемы так и не получилось решить. Если на веб-проекте часто меняется верстка будет очень сложно поддерживать Selenium-тесты в актуальном состоянии. "Утечка" контентаВ процессе нагрузки возможны такие случаи из-за ошибки разработчика, что NGINX файлы перестает видеть как статику и начинает отдавать через Apache, заполняя в итоге все его свободные слоты.

Нагрузочное тестирование — это плановая процедура, но особенно важно проводить его перед масштабными маркетинговыми кампаниями — например, перед праздничными распродажами, когда ожидается наплыв пользователей. Если интернет-магазин перестанет корректно работать и отвечать на запросы пользователей, пострадает его репутация в глазах посетителей и поисковых систем. Цели нагрузочного тестирования — не просто «положить» сайт, а понять, как именно он ведет себя под нагрузкой, определить запас прочности сервера и выявить слабые места с точки зрения производительности. Если выполнять проверку своевременно, у вас будет возможность подготовить сайт к будущим нагрузкам — сделать техническую переработку функционала и оптимизацию серверов.

Популярные инструменты нагрузочного тестирования

К базовым навыкам можно отнести опыт объектно-ориентированного программирования (ООП) и уверенное владение SQL. А через несколько лет работы специалист АФТ осваивает несколько языков программирования, специальные инструменты автоматизации, фреймворки и уверенно интегрирует свой код в процесс разработки, обладая навыками CI/CD и DevOps. Мы предложили провести нагрузочное тестирование интернет-магазина и технический аудит сайта — так как была вероятность, что проблему получится решить рефакторингом компонентов и настройкой серверного окружения.

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

Остальные довольствовались немногочисленными бесплатными opensource-решениями с «сырым» кодом, бедным функционалом и слабой поддержкой. Но время шло, дефекты этих инструментов исправлялись, а благодаря развитию сообществ, занимающихся нагрузочным тестированием, появилось настолько много расширений, библиотек и интеграций с другими инструментами, что возможности некоторых бесплатных решений сравнялись с функционалом платных. А отсутствие официальной поддержки с лихвой компенсируется форумами и чатами сообществ. База данных тоже была загружена не более чем на 30%, а зачастую меньше. Тест прервался по причине сетевой недоступности из-за повышенной нагрузки на канал связи.

Нагрузочное тестирование

В качестве инструмента для нагрузочного тестирования мы обычно используем Яндекс Танк — нагрузочный фреймворк для анализа производительности сайтов. В основе инструмента Яндекс Танк — система генерации нагрузки Phantom, позволяющая производить десятки и сотни тысяч HTTP-запросов в секунду. Стоит проводить нагрузочное тестирование при разных сценариях — и при запуске новых проектов или затрагивающих функционал доработках старого сайта.

как провести нагрузочное тестирование

Тестируем на реальных объемахПроводить нагрузочное тестирование нужно всегда на демо-данных, приближенных к реальным. Если в функциональном тестировании еще можно обойтись без специальных инструментов, то в АФТ и НТ необходимы программы, позволяющие не только разрабатывать скрипты, но и выполнять их, проводя тестирование. И, пожалуй, главный навык – умение искать необходимую информацию в интернете, т.к. Почти каждый новый проект НТ вынуждает осваивать какую-нибудь новую технологию или заставляет искать решение проблем, с которыми ранее не сталкивались. Тут пригодится знание технического английского, без него будет сложно и при освоении новых инструментов НТ.

Как провести нагрузочное тестирование интернет-магазина на Битрикс

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

как провести нагрузочное тестирование

Как и в любом тестировании, цели и процесс НТ вытекают из требований к тестируемой системе и зависят от организации разработки. Мы специально проанализировали эталонные демо-сайты чистого Битрикса и сайта на готовом решении Aspro. На тестируемом оборудовании без кэша эталонные демо-сайты показали существенную производительность, что дало основание изучать код сайта на предмет его оптимизации, а также оптимизации запросов к БД. Пробный "обстрел" для проверки конфигурации, примерных лимитов и шагов наращивания интенсивности, выявление ошибок конфигурации тестового задания. Мы хотели проверить максимальную производительность интернет-магазина — чтобы клиент понял, что можно получить на текущем оборудовании, а мы увидели перспективы масштабирования проекта.

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

Конечно, не все эти навыки приобретаются сразу, и это далеко не полный их перечень. Но он позволяет понять, в каких направлениях приходится развиваться почти всем, кто связывает свою жизнь с нагрузочным тестированием. Нагрузочное тестирование внедрено в общий жизненный цикл продукта и выполняется на постоянной основе с каждым релизом системы. Проверка стрессоустойчивости (если система сама восстанавливает свою работоспособность даже после сверхвысокой нагрузки, например, при наплыве клиентов в «черную пятницу»).

Когда проводить нагрузочное тестирование интернет-магазина

Кроме того, оно помогает выявить ошибки как в архитектуре проекта, так и в его кодовой базе. В нашей практике был интересный пример, когда stage-проект, развернутый в managed-кластере K8s, выдерживал всего лишь 8 RPS, а потом падал вплоть до рестартов всех pod’ов деплоймента. После трех итераций нагрузочного тестирования (с разницей в неделю) производительность выросла до 110 https://deveducation.com/blog/nagruzochnoe-testirovanie-rukovodstvo-dlya-nachinayushchikh/ RPS. Таким образом, для поддержания работоспособности проекта в сети, необходимо использовать и unit-тесты, и функциональные тесты, и Selenium-тесты, и вариант процесса постоянной интеграции с системой контроля версий и труд тестировщиков. При этом вы понимаете, что ошибки обязательно будут просачиваться на боевые сервера и их нужно научиться быстро находить и устранять.

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

Leave a Reply

Your email address will not be published. Required fields are marked *