Виктория Кравченко

С любимыми не расставайтесь: как не потерять клиентов в «горячий» сезон

Загадайте число от 40 до 60. Примерно таков процент пользователей, которые не станут ждать загрузки сайта или мобильного приложения более 2–3 секунд. Задумайтесь, всего через три секунды ожидания и они уйдут к вашим конкурентам, а вы потеряете потенциальную выручку. 

Юрий Ковалев, управляющий партнер «Перфоманс Лаб», рассказал, как не упустить клиентов в «горячий» сезон.


Как обстоят дела

Обычно декабрьская выручка в российских онлайн-магазинах в 1,5–3 раза выше, чем ноябрьская. Чаще всего, это самая большая выручка в году. Начиная с конца ноября, толпы покупателей отправятся за покупками. Они придут в интернет-магазины и потратят там много денег. Отличительной чертой этого периода является то, что покупатели ищут способ потратить деньги быстро.

Статистика говорит, что 75% клиентов уйдут в другой интернет-магазин, если столкнутся с медленной работой сайта или мобильного приложения. Большинство источников сходится в том, что покупатели с каждым годом становятся все менее терпеливыми. Вместе с развитием цифрового сегмента, показатели терпения покупателей стремительно уменьшаются.

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

Немного статистики:

  • Онлайн-продажи «М.видео» за первый квартал 2016 года составили 11 миллиардов рублей. Это на 32.5% больше, чем за аналогичный период 2015 года.
  • Мобильный трафик МТС за год вырос на 320% на смартфонах и на 54% на планшетах.
  • В 2016 году объем мобильных продаж в России вырос на 13%, а у четверти крупнейших российских онлайн-ритейлеров на долю m-Commerce приходится около 37% всех покупок.
  • За четвертый квартал 2015 года 22% онлайн-покупок были сделаны с помощью мобильных устройств.
  • Стоимость недоступности сайта «М.видео» составляет 2,5 млн. рублей в час, а у американского Amazon 120 тыс. долларов в минуту.
  • 46% покупателей называют медленную загрузку страниц главным неудобством мобильного шоппинга
 

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

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

1. Создайте тестовую версию сайта

Для начала убедитесь, что у вас есть подходящая тестовая среда. Тестировать производительность реального продуктивного сайта опасно.

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

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


2. Проанализируйте статистику вашего магазина

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

Тестирование должно быть реалистичным, а для этого вам нужен корректный профиль нагрузки. Чтобы его создать, проанализируйте статистику из базы данных интернет-магазина или, например, из Google Analytics или Яндекс.Метрики.

Хорошим результатом будет профиль нагрузки, в котором группы пользователей, выполняющих определенные операции (их вы возьмете из данных статистики), распределены в процентном соотношении. Например, 20% пользователей с главной страницы перешли в каталог товаров, 5% вошли в личный кабинет, 10% воспользовались поиском и так далее. Такой профиль нагрузки позволит вам смоделировать реалистичное поведение пользователей независимо от их количества. 


3. Создайте виртуальных пользователей

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

Почему тестируем на виртуальных пользователях, а не на реальных? А вы представьте, сколько реальных вам потребуется, да еще, чтобы все одновременно и по заданным сценариям? 


4. Тестируйте на разной нагрузке: выдержит ли сайт, если на него одновременно придет 100 покупателей? а 100 000? а 1 000 000?

Теперь можно приступать к проведению тестов. Тестируйте на разной нагрузке – средней, пиковой, стрессовой, резко возрастающей, продолжительной (для выявления утечек памяти). Система может работать нормально на обычной нагрузке, но что произойдет если нагрузка удвоится или утроится? Или возрастет неожиданно резко?

Тестирование утечки памяти нужно выполнять продолжительное время (12–48 часов). Приложение может сначала хорошо справляться с высокой нагрузкой, но потом отказать из-за утечки памяти.

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

Если нагрузку увеличить еще, то в какой-то момент сайт перестанет отвечать на запросы. Анализируя эти показатели, вы узнаете, насколько хорошо и быстро работает ваш сайт при разном количестве пользователей. 


5. Не забывайте о проблемах на стороне клиентов: сможет ли пользователь IE открыть ваш магазин в своем любимом браузере или ему придется для этого установить Chrome?

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

Например, медленно работающий код javascript, может замедлять загрузку страницы в несколько раз. Оптимизировано ли ваше приложение для работы в разных браузерах и на разных устройствах? Моделируйте различную ширину каналов связи во время тестов: как будет работать ваше приложение на разных каналах – wi-fi, 3g, 4g? Пользователей не волнуют из-за чего именно откажет приложение, они ожидают быстрой работы программы в любых условиях. 

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


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

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


Материалы по теме:

Как в «горячий» сезон заработать в 3 раза больше

Восемь глупых ошибок, из-за которых вы теряете клиентов на сайте

7 лайфхаков: как сделать так, чтобы ваши письма читали

Alibaba заработала $5 млрд за первый час распродажи в День холостяка

Бери и делай: как с нуля создать сайт для любого проекта

В 21 веке у каждого должен быть электронный кошелек. Мало ли что


comments powered by Disqus

Подпишитесь на рассылку RUSBASE

Мы будем вам писать только тогда, когда это действительно очень важно