...

Тестирование производительности Magento: пошаговое руководство по усилению Magento

276
Содержание

Тестирование производительности Magento: пошаговое руководство по усилению Magento

В цифровом мире производительность измеряется скоростью, пропускной способностью, временем отклика и доступностью.

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

Прежде чем приступить к тестированию, давайте рассмотрим основы.

Типы тестов качества [согласно Руководству по тестированию Magento]

Magento предлагает подробное руководство по тестированию различных стратегий. В руководстве Magento делит тесты на две категории: тесты качества продукта и тесты качества кода. Оба важны, и результаты тестов можно использовать по-разному.

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

Эти тесты включают:

Тестирование производительности Magento: пошаговое руководство по усилению Magento

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

Тесты качества кода включают:

Тестирование производительности Magento: пошаговое руководство по усилению Magento

Разница между тестированием производительности, нагрузочным тестированием и стресс-тестированием

В этой статье мы сосредоточимся на тестировании производительности на стороне сервера. На скриншоте выше вы можете видеть, что тестирование производительности измеряет, сколько ресурсов (ЦП, ОЗУ, время) используется Magento для данного магазина, действия пользователя или других параметров.

Тестирование производительности можно разделить на две группы: нагрузочное тестирование и стресс-тестирование.

Испытательная нагрузка находится под контролем, планируется тест, который направлен на оценку поведения сайта при определенной нагрузке (пользователи, заказы, сделок и т.д.).

Тестирование производительности Magento: пошаговое руководство по усилению Magento

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

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

Тестирование производительности Magento: пошаговое руководство по усилению Magento

Стресс-тестирование Magento

Что лучше – нагрузочное тестирование или стресс-тестирование?

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

Мы взяли интервью у Евгения Плахотника, backend-разработчика Magento 2 в Elogic, о его опыте тестирования производительности Magento, и он поделился проницательной историей.

«К нам пришел клиент, который в то время недавно столкнулся с серьезной аварией на сайте. Их сайт работал отлично, но имел один вопиющий недостаток, о котором они узнали после запуска маркетинговой кампании по случаю государственного праздника: сайт не справлялся с большим объемом трафика и в конечном итоге вышел из строя ».

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

«Тестирование производительности показывает, как масштабировать, и учит обращать внимание на детали, которые в совокупности влияют на результаты всей вашей тяжелой работы»

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

Что нужно подготовить перед тестированием производительности Magento 2

Тестирование производительности сложное. Один разработчик, специалист по контролю качества или бизнес-аналитик не могут составить план самостоятельно. Для тестирования требуется сплоченная команда, желательно со всеми тремя из вышеупомянутых ролей, а также владелец (-ы) продукта и эксперт DevOps.

Задача эксперта DevOps – автоматизировать процессы между разработчиками программного обеспечения и ИТ-командами, чтобы они могли создавать, тестировать и развертывать программное обеспечение более надежным и более быстрым способом.

Перед тем, как запустить тест, вам понадобится несколько вещей.

Анкеты клиентов 

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

♦ Соберите общую информацию

В частности, мы просим клиента:

  • Каковы твои цели?
  • Когда крайний срок?
  • Где (среду) вы хотите протестировать?

♦ Подготовить KPI

Мы также просим клиента подготовить KPI (критерии приемки производительности) или помогаем им в этом.

Примеры KPI для тестирования производительности:

  • Время ответа конечного пользователя
  • Максимальное количество одновременных пользователей
  • Пропускная способность
  • Использование ресурсов
  • Бизнес-метрики

♦ Выберите инструменты, которые вы собираетесь использовать.

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

  1. Инструменты тестирования производительности
  • Apache JMeter – это инструмент, рекомендованный Magento и включенный в набор инструментов для повышения производительности.
  • Гатлинг
  • OpenSTA
  • Осада
  1. Инструменты профилирования
  • Черный огонь
  • Tideways – мы рекомендуем использовать графический интерфейс, например XhGUI, для лучшей визуализации.
  1. Инструменты анализа / отчетности

♦ Создание пользовательских путешествий

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

Пример пользовательского пути:

  1. Открыть главную страницу
  2. Щелкните категорию продукта
  3. Нажмите на конкретный продукт
  4. Добавьте товар в корзину
  5. Откройте корзину и перейдите к оформлению заказа.
  6. Оформить заказ как зарегистрированный пользователь или гость
  7. Достигните страницы успешного оформления заказа

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

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

  • Используйте разные наборы данных с различным количеством клиентов, заказов, продуктов, категорий и других действий.
  • Имитируйте ошибки (неправильный пароль, неверные данные кредитной карты и т.д. )
  • Установите «время для размышлений». Этот параметр имитирует взаимодействие людей с веб-сайтами. Время обдумывания создает паузы между действиями, подобно тому, как люди думают, читают или думают, прежде чем что-то щелкнуть.
  • Рассмотрите возможность запуска фоновых процессов для имитации серверной части Magento и запланированных задач.

Обратите внимание: не рекомендуется включать сторонние расширения, шлюзы или платформы в тесты, такие как CDN, платежные шлюзы, программное обеспечение для доставки и другие.

Процесс тестирования производительности

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

Генерация данных для тестового сайта

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

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

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

Тестирование производительности Magento: пошаговое руководство по усилению Magento

Данные, созданные Magento для тестирования

С помощью генератора профилей Magento вы можете создать столько приборов, сколько захотите. Вот полный список поддерживаемых в настоящее время приспособлений:

  • Пользователи с правами администратора
  • Наборы атрибутов
  • Связать продукты
  • Правила цены корзины
  • Правила цен каталога
  • Категории
  • Конфигурации
  • Настраиваемые продукты
  • Клиенты
  • Изображения продуктов
  • Состояние индексаторов
  • Заказы
  • Простые продукты
  • Сайты
  • Группы магазинов
  • Просмотры магазина
  • Налоговые ставки

Вы можете узнать больше о генерации данных, а также о командах, которые необходимо ввести для генерации данных, в Magento DevDocs.

Настройте тест с помощью выбранного вами инструмента

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

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

Подсказка: вы можете рассчитать количество виртуальных пользователей, необходимое для прохождения теста, с помощью Google Analytics по следующей формуле:

Виртуальные пользователи = (ежечасные сеансы x средняя продолжительность сеанса в секундах) / 3600

Контрольный список тестирования Magento [для производственной среды]

Создав среду тестирования, выполните этот контрольный список перед тестированием. Это пример тестирования производительности в производственной среде (шаги могут различаться в зависимости от среды).

  • Шаг 1 – Клонируйте существующую базу данных Magento 
  • Шаг 2 – Убедитесь, что все инструменты работают правильно
  • Шаг 3. Приостановите службу ping, доступности или проверки работоспособности
  • Шаг 4 – Включите режим обслуживания (IP-адреса инструментов прямого тестирования нагрузки)
  • Шаг 5. Убедитесь, что фиды интеграции не запущены
  • Шаг 6. Переключитесь на клонированный сайт и убедитесь, что среда работает.
  • Шаг 7. Убедитесь, что отключена только связь между системой и клиентом.
  • Шаг 8 – Создайте резервную копию важных файлов журнала
  • Шаг 9 – Создайте в журналах маркер «начало теста производительности».

Запустить тест

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

Обратите внимание: не меняйте сценарии на этом этапе. Вам нужно только изменить нагрузку (трафик, продолжительность).

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

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

Анализируйте результаты и создавайте отчеты

Теперь вы выполнили тесты и у вас есть данные, но вы не можете делать выводы только на основе необработанных данных. Да, Jmeter предлагает визуальные отчеты в формате HTML, но, к сожалению, они довольно простые. Вот почему вам понадобятся инструменты профилирования с расширенными функциями визуализации, такими как диаграммы и графики.

При анализе данных следует иметь в виду следующее:

  • Проанализируйте данные по критериям приемлемости производительности.
  • Если тест не пройден, вам необходимо создать план повышения производительности.
  • Когда вы устранили все проблемы с производительностью или узкие места, повторите тест, чтобы убедиться, что все проблемы устранены.
  • Анализ тестирования производительности может помочь вам принять обоснованные архитектурные и бизнес-решения.
  • Будьте осторожны при очистке данных, вы можете удалить ценную информацию.

Согласно Руководству Microsoft по тестированию производительности для веб-приложений, вы должны создавать два типа отчетов.

Технические отчеты

  • Описание теста, включая модель рабочей нагрузки и тестовую среду.
  • Данные, легко усваиваемые с минимальной предварительной обработкой.
  • Доступ к полному набору данных и условиям тестирования.
  • Краткие изложения наблюдений, опасений, вопросов и просьб о сотрудничестве.

Отчеты заинтересованных сторон

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

Что вы можете узнать из тестов производительности

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

Почему так важно тестирование производительности?

Это позволяет:

⇒ Найдите узкие места 

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

⇒ Разработайте стратегию масштабирования

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

«Если вы решили масштабироваться, когда что-то съедает ресурсы, это будет похоже на езду с дырой в бензобаке. Вам придется постоянно заливать в бак все больше и больше топлива, чтобы машина продолжала движение ».

Yevhen Zakharchuk, Magento developer, Elogic

⇒ сократить время простоя 

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

⇒ Обеспечьте лучший клиентский опыт

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

⇒ Выполнение ключевых показателей эффективности

Нет, мы не зря тратили все это время на общение и консультации с нашими клиентами при составлении их KPI. Здесь вы берете эти KPI и видите, как система соотносится с ними. Если он соответствует требованиям – отлично! Если нет, вы должны подумать, что можно улучшить в следующий раз.

Выводы – тестирование производительности Magento жизненно важно

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

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

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

Самый важный вывод – проверьте себя, прежде чем разрушить себя. 

Источник записи: https://elogic.co

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