Итак, вы думаете о нагрузочном тестировании.
Возможно, вы разочарованы текущими решениями, которые вы используете, и обнаружили, что слишком сложно писать и поддерживать ваши тесты. Или, может быть, вы думаете о проведении нагрузочного тестирования в первый раз. В любом случае, это отличный первый шаг, чтобы подумать о нагрузочном тестировании вообще – многие компании не страдают от последствий.
Существует установленная связь между производительностью приложений и важными бизнес-показателями, такими как доход, число подписчиков или общее удовлетворение клиентов. Все компании, которые ведут бизнес в Интернете, должны стремиться к тому, чтобы производительность не оказывала негативного влияния на эти ключевые показатели. Даже когда эти меры улучшаются, вы можете обнаружить, что приложение может работать лучше, потребляя меньше ресурсов, экономя вам и вашим пользователям деньги в пути..
Независимо от того, являетесь ли вы новичком в области нагрузочного тестирования или имеете опыт работы в этой области, вы, вероятно, знаете о головокружительном наборе инструментов и подходов, доступных для выполнения работы. Сегодня я хотел бы рассказать вам о моем новом любимом инструменте нагрузочного тестирования – Элемент наводнения.
Многие популярные инструменты работают на уровне протокола – они пытаются приблизить поведение пользователей в вашем приложении, отправляя сетевые запросы. Однако в современной всемирной паутине веб-приложения становятся все более изощренными, а также используют гораздо больше постоянно расширяющегося списка функций браузеров, чем когда-либо прежде..
Даже на первый взгляд простые приложения, такие как интернет-магазин, используют множество функций браузера, чтобы сделать выбор товаров, оформление заказов и оплату онлайн как можно более удобным для пользователя..
Итак, в эту современную эру Интернета тестирование на уровне протокола (PLU) может дать нам только большую часть картины производительности нашего приложения. Напротив, новые инструменты, такие как Flood Element, тестируют, имитируя поведение пользователя с помощью реальных веб-браузеров. Мы называем этот подход пользователями уровня браузера (BLU).
В Flood Element моделируемое поведение пользователя определяется с помощью простых, естественных действий, таких как нажатие на ссылки и кнопки, заполнение веб-форм и так далее. После того, как вы определили поведение, вы можете приступить к работе в огромном масштабе на flood.io – и я имею в виду тысячи пользователей со всего мира.!
Нагрузочное тестирование с помощью Flood Element может помочь вам разработать целостное, интуитивно понятное представление о производительности вашего приложения с точки зрения пользователя. Учитывая то, что мы, пользователи, сами думаем, что пользователи – это то, что мы все делаем естественным образом, также гораздо удобнее начинать тест с Element BLU, чем с традиционными инструментами PLU..
BLU помогают вам получить реалистичное представление о производительности всего вашего приложения сверху вниз. PLU действительно проверяют только то, что находится под ватерлинией – вашу сетевую и серверную инфраструктуру.
Целостный взгляд
Использование Flood Element для измерения производительности всего вашего приложения с точки зрения пользователей – отличный способ разработать целостное представление о производительности вашего приложения и, таким образом, защитить от необъяснимых изменений – будь то временные аномалии или, возможно, регрессии в коде.
Тесты Flood Element BLU дают представление о производительности, намного более близкое к пользовательскому. Они учитывают каждую часть производительности, которую будет испытывать пользователь: производительность сети, а также производительность скриптов на странице, а также скрипты сторонних производителей, такие как аналитика или надстройки рекламы (на самом деле наши тесты настолько реалистичны, что вы необходимо принять меры, чтобы не создавать ложные данные в Google Analytics.)
Если выполнение нагрузочного теста BLU с Element дает вам целостное представление о производительности вашего приложения на определенный момент времени, регулярное выполнение тестов позволяет вам понять, работает ли ваше приложение быстрее или медленнее… возможно, внезапно, как в сценарии виджета регистрации.
Написание теста
Теперь давайте посмотрим, как легко начать работу с Flood Element.
Элемент скриптов написан на Машинопись или современный JavaScript. Для лучшего опыта мы рекомендуем использовать замечательную комбинацию TypeScript, отредактированную с использованием VS Code, потому что она дает вам много полезной помощи при разработке ваших тестов..
Вы можете установить Element, используя инструкции по началу работы здесь: https://element.flood.io/
После установки отредактируйте и протестируйте свой скрипт локально, и когда вы будете готовы загрузить его в flood.io, чтобы выполнить полномасштабное нагрузочное тестирование, подписавшись на пробную версию здесь: https://flood.io/load-performance-testing-tool/free-load-testing-trial/
Базовый тест Element BLU для сценария регистрации выше может выглядеть
Если вы знакомы с тестированием на уровне протокола, вы знаете, что все временные интервалы организованы вокруг транзакций запрос-ответ. При обучении тестированию на уровне браузера есть несколько дополнительных тонкостей, которые следует учитывать при тщательном тестировании. В частности, нет никаких реальных встроенных временных группировок, поэтому нам нужно ввести свои собственные в структуру нашего теста..
Самый простой подход для группировки времени – это дождаться появления необходимых элементов на странице – так же, как это сделал бы пользователь..
Исходя из сценария, приведенного выше, мы заинтересованы в том, чтобы рассчитывать время, в течение которого пользователь регистрируется, но не столько во время загрузки страницы. Итак, на первом этапе мы посещаем URL и ждем, пока страница не достигнет известного состояния – пока не появится заголовок.
Далее мы действуем, мы заинтересованы в том, чтобы следить, а именно заполнять и отправлять регистрацию.
Теперь пришло время сохранить скрипт локально, поэтому мы можем загрузить скрипт во Flood и запустить его с сотнями или даже тысячами одновременно работающих пользователей..
- (Если вы еще этого не сделали) подписаться на наводнение.
- Создать проект
- Нажмите «Создать поток» в вашем новом проекте
- Создайте свой тест, используя опцию Flood Element
- Назовите свой тест
- Загрузите созданный вами скрипт .ts:
- Установите количество браузеров (пользователей), а также # регионов, чтобы получить общее количество пользователей (# браузеров * # регионов). Также не забудьте установить продолжительность теста:
- Запустите тест и дождитесь результатов:
- Получив результаты, просмотрите график и перейдите к любым проблемным областям, которые они могут выделить:
Вывод
Итак, теперь вы знаете, почему (и как), как тестировать пользователей уровня браузера с помощью Flood Element. Благодаря этому новому подходу мы избавились от многих трудностей, связанных с созданием нагрузочных тестов, и в то же время сделали результаты более реалистичными..
Может показаться сложным начать тестирование с тысячами пользователей, но каждый шаг легко выполнить по одному шагу:
- Скачать элемент
- Напишите простой тест локально, охватывающий ваш ключевой сценарий (т.е. оформление заказа)
- Запустите тест локально с помощью ‘element run’, чтобы убедиться, что тест выполняется полностью
- Загрузите ваш тест во Flood и запустите с 5-10% от максимальной нагрузки (т. Е. Если ваша максимальная нагрузка составляет 5000 пользователей, начните с 250-500 пользователей)
- Оцените результаты и настройте ваш скрипт и приложение по мере необходимости
- Загрузите ваш тест во Flood и запустите с 50-100% от максимальной нагрузки (т. Е. Если ваша максимальная нагрузка составляет 5000 пользователей, тогда запустите с 2500-5000 пользователей)
- Увеличьте свое тестовое покрытие, чтобы охватить дополнительные сценарии, необходимые для достижения желаемого тестового покрытия..
В зависимости от сложности вашего тестового сценария, вы можете начать работу с тысячами пользователей менее чем за день. Так что не теряйте времени – отправляйтесь на https://element.flood.io чтобы начать экспериментировать с Flood Element сегодня!