Как стать автором
Обновить
831.7
OTUS
Цифровые навыки от ведущих экспертов

Нагрузочное тестирование производительности вашего сайта

Время на прочтение5 мин
Количество просмотров9.5K
Автор оригинала: Wing Ho
И снова здравствуйте. В июле Otus запускает новый курс «Нагрузочное тестирование». В преддверии старта курса традиционно делимся с вами полезным материалом.




Поскольку 5 миллиардов человек во всем мире самоизолируются, все больше и больше наших ежедневных взаимодействий происходят через интернет. Ритейлеры по всему миру переводят обслуживание своих клиентов из офисов в онлайн, школы и учебные заведения пытаются находить альтернативы в интернете, и даже общение в кругу семьи переносится на Zoom и Webex вместе с нашими рабочими встречами (с детьми и домашними животными на фоне).

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

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

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


1. Запускайте нагрузочные тесты из производственной среды


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

2. Масштабируйте свои тесты от маленького к большому и далее к огромному


Если вы очень спешите протестировать большой наплыв пользователей, вы можете случайно пропустить уровень нагрузки, на котором у вас в данный момент могут быть проблемы, потому что вы пропустили слишком много уровней одновременно. Разгоняйтесь понемногу, а затем наращивайте свои тесты все больше и больше. Перед каждым тестом останавливайтесь, чтобы отслеживать результаты, и убедитесь, что вы удовлетворены ими, прежде чем переходить на следующий уровень. В BlazeMeter мы начинаем с отладочного тестирования, которое выполняется как функциональный тест, просто чтобы убедиться, что тест выполняет то, что вы хотите чтобы он выполнял. Затем мы проводим калибровочные испытания. Эта калибровка проводится, чтобы убедиться, что тестовая платформа, на которой выполняется тестирование, на самом деле не является узким местом. Теперь мы можем перейти к гвоздю программы: тестированию производительности. Начните тестирование с 10% целевой нагрузки и постепенно увеличивайте до полной целевой нагрузки. Убедитесь, что разгон постепенный, чтобы вы могли контролировать симптомы.

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

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



3. Запланируйте тесты


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

Нагрузочные тесты — нагрузочные тесты предназначены для определения поведения системы при ожидаемой нагрузке.

Стресс-тесты — стресс-тесты могут помочь вам понять пределы прочности системы.

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

Тестирование всплесков нагрузки — поможет вам проверить способность системы выдерживать резкие и быстрые нагрузки.

Изоляционный тест — это повторный тест для проверки, была ли устранена известная системная ошибка или проблема, ранее обнаруженная в этом же тесте.

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

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

4. Мониторинг внутренних результатов нагрузочного теста


Нагрузочное тестирование позволяет просматривать и анализировать KPI производительности, такие как время отклика и латентность, а также корреляции между ними. Но также важно просмотреть ключевые показатели эффективности, такие как Cache Hits и DB Queries, просмотреть лог ошибок на предмет исключений, а также просмотреть стандартные характеристики оборудования, такие как загрузка ЦП/памяти/сети и состояние автоматического масштабирования.

Различные решения расширяют возможности анализа результатов испытаний. DX APM, New Relic, App Dynamics и другие решения обеспечивают мониторинг производительности приложений и мониторинг конечных пользователей, а Amazon Cloud Watch отслеживает облачные ресурсы AWS.

5. Включите отслеживание производительности конечного пользователя в бэкэнд-тестирование


Автоматический или вручную анализируйте то, что испытывают ваши пользователи, благодаря уникальной функции BlazeMeter — мониторингу опыта конечных пользователей. Новые возможности функционального тестирования выполняют тест Selenium в фоновом режиме, пока выполняется нагрузочный тест, через Taurus. Тест Selenium создает Waterfall Report, который показывает, что пользователь будет видеть в своем веб-браузере в разные моменты во время нагрузочного теста. Это может быть особенно полезно при отладке, например, из-за того, что определенная страница не была загружена должным образом с точки зрения пользователя в определенный момент нагрузочного теста.

6. Настройте резервные серверы и локации


Сбои могут случиться даже с Бейонсе (ну ладно, не с Бейонсе). Создавая резервные серверы и локации, вы можете быть уверены, что готовы продолжать предоставлять услуги в очень короткие сроки.

7. Проверьте ваши сторонние интеграции


Когда вы вносите изменения в свое приложение или сайт, вы не просто влияете на свой собственный продукт. Вы также можете влиять на сторонние сценарии в своем приложении или на сайте или же можете вызвать сбой сторонних устройств и серверов, если не подготовите их должным образом. Например, для разных CDN требуются разные подходы, а для балансировки нагрузки AWS (ELB) требуется прогрев перед балансировкой.

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

8. Внедрить мониторинг API


После того, как вы закончите тестирование, вам все равно захочется узнать, как ваш сайт ведет себя «в дикой природе». Вы можете использовать возможности функционала BlazeMeter 360 Degree Monitoring для мониторинга ваших критически важных API-интерфейсов в производственной среде, чтобы убедиться, что ваш веб-сайт или приложение функционируют должным образом. Он будет служить системой предупреждения, чтобы вы знали, когда ваша система работает не так, как от нее ожидают.

Скрытый текст
Хотите прокачать свое тестирование? Подпишитесь на бесплатную онлайн-аккредитацию в университете BlazeMeter здесь.

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



Узнать подробнее о курсе.


Теги:
Хабы:
+4
Комментарии0

Публикации

Информация

Сайт
otus.ru
Дата регистрации
Дата основания
Численность
101–200 человек
Местоположение
Россия
Представитель
OTUS