Введение в тестирование производительности
January 10

Моделирование профиля для нагрузочного тестирования

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

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

  • Поддержит ли мой сайт одновременный поиск N пользователей?
  • Какое наибольшее количество пользователей может поддерживать мой сайт, оставаясь при этом в рамках заданных требований к качеству и производительности?

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

Каков набор возможных действий, которые может выполнить пользователь?

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

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

Какие могут быть пользовательские профили для приложения? Достаточно ли одного пользовательского профиля?

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

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

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

  1. Профиль просмотра
  2. Профиль поиска
  3. Профиль размещения заказа

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

Какие действия выполняет пользователь, представляющий каждый пользовательский профиль?

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

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


Операция Количество выполнений за одну сессию


Открыть главную страницу 1


Авторизоваться 1


Просмотреть каталог товаров 4


Найти нужный товар через поиск, 2


Добавить товары в корзину 3


Проверить корзину и оформить заказ, 1


Выйти из приложения 1


*Этот анализ необходимо выполнить для всех профилей пользователей

Каково среднее "время обдумывания" пользователя между действиями?

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

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

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

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

Каково ожидаемое соотношение сценариев профилей пользователей?

Комбинирование различных профилей позволяет создать более реалистичную имитацию веб-трафика для тестов. Соотношение бизнес-действий, выполняемых различными профилями пользователей, можно оценить или измерить. Например, типичная модель использования приложения для покупки товаров может состоять из 77 % пользователей, просматривающих приложение, 20%, ищущих конкретные товары, и 3 %, оформляющих заказ. Соотношение зависит от вашего приложения, вашего бизнеса и ваших пользователей.

Важно, чтобы соотношение отражало реальные транзакции на вашем сайте

Как меняется количество пользователей, заходящих на ваш сайт, с течением времени?

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

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

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

Каково максимальное ожидаемое количество пользователей, посещающих ваше приложение?

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

Одновременные пользователи - это пользователи, имеющие активные соединения с одним и тем же веб-сайтом в одно и то же время.

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

В течение какого времени должен выполняться тест?

Продолжительность тестирования зависит от специфики вашего приложения и может составлять от 20 минут до недели. Рассмотрим следующие сценарии:

  • Вам необходимо протестировать механизм входа в систему, чтобы убедиться, что необходимое количество пользователей может войти на сайт в течение определенного периода времени. Этот сценарий можно протестировать за короткий промежуток времени (15-20 минут), а результаты экстраполировать на более длительные периоды. Если 100 пользователей могут войти на сайт в течение 15 минут, можно экстраполировать результаты на 400 пользователей в течение часа.
  • Вы можете проводить тесты непрерывно в течение длительного периода времени (дней, а возможно, и недель) с постоянной нагрузкой, чтобы проследить, как работает ваше приложение в течение длительного времени. Это позволит выявить медленные утечки памяти, которые становятся очевидными только через длительный период времени.

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

Источник SmartBear

📢 Канал в телеграмм

😊 Для донатов