Выполнение крупномасштабных нагрузочных тестов из полностью управляемой облачной сети
Распределенная нагрузка тестирование на AWS
Будет объяснено распределенное нагрузочное тестирование на AWS, которое является решением, имитирующим тысячи одновременных подключений к одной конечной точке. Это очень полезный инструмент для тех, кто итерирует на их разработки приложений и производительности.
Что именно тестируется?
Представьте, что вы разработчик, и вы создали величайшее в мире приложение (или, может быть, это самое большое приложение, которое вы когда-либо создали). Как разработчик, вы уверены, что он работает нормально, так как вы сделали единицу и функциональное тестирование. То, что вам нужно знать дальше, это будет выполнять в производстве, и это будет выполнять в масштабе? Масштабируемость невероятно важна. Приложения для тестирования нагрузки можно рассматривать так же, как функциональное тестирование, а просто применять нагрузку к приложениям и наблюдать за тем, что происходит. Существует разница между тестированием для одного пользователя и тестированием его для тысячи человек отличается.
Решение создает основу, в которой можно протестировать приложения под нагрузкой, используя Elastic Container Services для вращения контейнеров, которые создают сотни подключений к конечной точке, и вы можете раскрутить сотни таких контейнеров. Целевая страница Distributed Load Testing на AWS показана ниже.
Как видно из рисунка, есть ссылка на шаблон CloudFormation, который будет вращать решение в учетной записи пользователя с помощью нескольких кликов, подробное руководство по развертыванию. View Deployment Guide – это подробное руководство, в котором содержатся инструкции по архитектурным вопросам и шагам настройки для развертывания распределенного нагрузочного тестирования на AWS в облаке Amazon Web Services (AWS). Исходный код доступен на GitHub, если пользователь хочет взять его и настроить его для своих собственных нужд и требований. Диаграмма архитектуры представляет общую инфраструктуру решения, которая включает в себя передний и задний конец.
Фронт-энд AWS
Когда рассматривается передний конец: есть веб-консоль и пользовательский интерфейс, который пользователь может использовать для взаимодействия с решением. Существует также API, который позволяет создавать тесты, просматривать статус теста, повторно запускать тесты и удалять тестовые операции. Пользовательский интерфейс исходит из шаблона CloudFormation. Здесь пользователи фактически начинают настраивать сам тест.
AWS Бэк-Энд
серверная часть состоит из двух вещей: есть Docker Pipeline, а затем сам тестовый движок. Там, откуда приходит Docker Pipeline, решение использует программное обеспечение с открытым исходным кодом под названием Taurus. На Docker Hub доступно изображение Docker, которое пользователь может использовать. Это позволяет пользователю создавать сотни одновременных подключений к конечной точке. Он также поддерживает JMeter и Gatling, которые являются другими инструментами тестирования. Это фактическая часть тестирования изображений, и это приложение, которое собирается сделать тестирование, и что происходит в виде изображения Docker. Бэк-энд конвейер собирается принять этот пакет изображений для нас и вытолкнуть его на S3 в учетной записи клиента. А затем CodePipeline и CodeBuild используются для создания этого изображения и регистрации его в Elastic Container Services.
Фактическое тестирование происходит в AWS Fargate. Это управляемая служба , которая позволит запускать контейнеры в службе эластичных контейнеров, не беспокоясь о сети или подчеркивающей инфраструктуре. Это буквально просто спина вверх задача, запустить количество контейнеров, которые вы хотите все остальное заботятся. Кроме того, у нас есть функция Lambda, которая будет принимать запросы от нашего API, и это то, что на самом деле работает тесты. Он будет хранить тестовый шаблон в S3. Он будет хранить всю информацию, которую мы собираем в Динамо, а затем мы используем S’S, чтобы выстроили эти задачи в очередь в AWS Fargate, чтобы мы могли начать вращать наши контейнеры.
Настройка AWS TEST
Ниже приведена презентация о переднем конце о том, как мы настраиваем тест.
- Пользователь нажат на кнопку«Создайтест»
- Пользователь дает Имя, Описание, Количество задач (это количество контейнеров, которые вы хотите запустить), Конвалюта (это номер для каждого контейнера. Сколько параллельных соединений будет создаваться), Ramp Up (как долго я собираюсь получить от начала, чтобы получить до этого числа одновременных соединений), Держите для (как долго я собираюсь провести этот тест?)
- Сценарий: http конечная точка в тесте (в настоящее время AWS поддерживает одну конечную точку), метод HTTP (AWS поддерживает GET, PUT, POST, DELETE операции), HTTP Headers, Body Payload (головные нагрузки и полезная нагрузка могут быть разобрат).
Ниже приведен скриншот тестового запуска:
Подробная информация о тесте была предоставлена. В этом конкретном примере было задано 20 контейнеров, работает 20 контейнеров. Как только это закончится на задней части, каждый из контейнеров будет работать тесты, принять результаты, а затем хранить, что в виде файла XML в S3 нашей функции бэк-энд Lambda. Как только все контейнеры закончивут, мы возьмем эту информацию и агрегироваем ее, перебудем всю эту информацию в «Динамо».
Ниже приведены три скриншота страницы, которая представляет результаты теста.
Если пользователь просматривает завершенный тест, ему предоставляется сводка; результаты тестов, которые представляют собой среднее время отклика, задержку, метрики CloudWatch, чтобы мы могли видеть, как мы работаем, ряд других точек данных, а также историю результатов.
Представьте, что вы можете запустить это один раз, выполнить тонкую настройку конечной точки в API, а затем повторно запустить тест снова, чтобы увидеть, как это улучшает время отклика, чтобы разработчики могли итерировать и видеть свои результаты с течением времени улучшения для внесения в их применение. Самое главное, они видят производительность в масштабе.
Это было глубокое погружение в распределенную нагрузку тестирования на AWS. Это решение устраняет все сложности генерации нагрузки для проверки приложений в масштабе.
Автоскальза AWS
Автоматическое масштабирование — это метод, используемый в облачных вычислениях, при котором количество вычислительных ресурсов в ферме серверов, обычно измеряемых с точки зрения количества активных серверов, автоматически масштабируется в зависимости от нагрузки на ферму. Автоскальза AWS помогает достичь горизонтальной масштабируемости приложения. Это помогает достичь высокой доступности, масштабировать и уменьшать емкость EC2, поддерживать желаемую емкость, увеличивать/уменьшать емкость плавно на основе спроса, это приводит к оптимизации затрат. Он работает с ELP и CloudWatch.
Создание эластичного балансера нагрузки
На рисунке ниже показана общая структура, помогая понять основы.
Создание упругого баланса нагрузки
Прежде чем мы сможем создать и настроить конфигурацию запуска и автоматическое скалывания, нам необходимо создать наш Elastic Load Balancer (ELB), который является поставщиком услуг AWS для равномерного распределения входящего трафика по здоровым экземплярам EC2, которые находятся под его контролем. Здоровый является ключевым словом здесь. Эластичный балансировщик нагрузки выполняет периодические настраиваемые проверки работоспособности и принимает решения о том, куда отправлять трафик. Скриншот ниже — заголовок на панель мониторинга EC2.
Здесь наша цель состоит в том, чтобы пойти на EC2 виртуальных серверов в облаке. Как показано ниже, в соответствии с сетью и безопасности,мы выбираем load Balancers.
После этого пользователь наподохитовок кнопки Создать баланс нагрузки.
Пользователь дает имя. В этом конкретном примере мы оставляем создание внутреннего балансера нагрузки неконтролируемым. Это направит имя DNS на общедоступной IP-адрес. При проверке имя DNS будет указано на частный IP вместо этого. Будет проверена расширенная конфигурация VPC, которая позволит назначить подсети ELB на более позднем этапе. Конфигурация слушателя позволяет нам картой входящего трафика ELB в порты экземпляров EC2. Отображение порта 80 по умолчанию помогает нашему приложению.
Настройка проверки здоровья
Следующим шагом, который показан ниже, является настройка проверки здоровья.
Настройка проверки здоровья: Параметры
Здесь наши опции включают стандартные HTTP, TCP, HTTPS и SSL. В нашем примере мы будем придерживаться HTTP и направлены на .txt роботов. Если наш веб-сервер не может обслуживать статический запрос, то мы можем с уверенностью предположить, что что-то не так с экземпляром, и никакой дополнительный трафик не должен быть отправлен ему, пока он не станет здоровым. При текущих настройках по расширенным деталям экземпляр EC2 будет проверяться каждые 30 секунд. У него есть 5 секунд, чтобы ответить на запрос. Неспособность ответить в выделенную время означает, что экземпляр может быть нездоровым. Две последовательные нездоровые проверки вывягят экземпляры EC2 из состояния обслуживания. Чтобы снова стать здоровым. Он должен пройти 10 последовательных проверок здоровья, прежде чем он начнет получать трафик. Эти пороговые значения приемлемы для нашего приложения.
Выберите подсети/зоны
Выберите из подсети варианты показывает ниже.
Мы добавим каждую подсеть, которую мы создали для наших веб-серверов. Важно отметить, что мы можем добавить только одну подсеть в зону доступности.
Назначение групп безопасности
Ниже приведен скриншот того, как выглядит назначение групп безопасности.
Нам нужно выбрать группу безопасности для нашего ELB, поэтому для этого примера мы выбираем предварительно настроенную группу безопасности ELB.
Добавление экземпляров EC2
Ниже приведен скриншот, показывающий, как добавить экземпляры EC2.
На этом этапе мы должны убедиться, что балансировка нагрузки Enable Cross Zone проверена. Без этого наша высокая доступность не бесполезна. Необходимо также проверить слив соединения, который определяет, как обрабатывается трафик при регистрации экземпляра или объявлен нездоровым.
Создание страницы обзора баланса нагрузки
Страница обзора приведена ниже. Отсюда вы можете просмотреть свой выбор и внести любые дополнительные изменения, если это необходимо.
Теперь, ELB создан. Как только она будет закончена, мы готовы создать нашу конфигурацию запуска политики автоматического скалки. Создание политики автоматического скалки также легко, поэтому пользователь может пройти через этот процесс самостоятельно.
LoadView против конкуренции: Почему LoadView выделяется
В этом разделе представлены высококачественные сравнения между другими популярными инструментами тестирования нагрузки и решениями и LoadView. Не все инструменты тестирования нагрузки созданы равными. Несмотря на то, что инструменты с открытым исходным кодом обычно не требуют первоначальных затрат и инвестиций, что может сделать их простым вариантом в использовании, лучше понять, что делает LoadView проще в использовании, чем другие инструменты.
Апач JMeter
Apache JMeter, который является открытым исходным кодом программного обеспечения, для тестирования нагрузки функционального поведения и измерения производительности веб-приложений. Далее, мы возьмем выделить плюсы и минусы JMeter.
Преимущества Apache JMeter
- Платформа независимая. JMeter может работать в любой операционной системе, такой как Mac, Windows и Linux.
- С открытым исходным кодом. Инструмент с открытым исходным кодом, то есть он может быть использован бесплатно. Разработчик программного обеспечения также может внести изменения и настроить его в соответствии с их требованиями, что приводит к большой гибкости. Разработчик может настроить JMeter, применить тестирование автоматизации к JMeter.
- Функциональность. С помощью JMeter пользователь может делать любые тесты, которые он хочет – нагрузочных тестов, стресс-тестов, функциональных тестов, распределенных тестов и т.д.
- Отчетность. JMeter предоставляет многочисленные отчеты и диаграммы – диаграмма, график и вид дерева. Кроме того, поддерживается html, JSON и XML форматы отчетности.
- Поддержка многих Протоколов. JMeter поддерживает FTP, HTTP, LDAP, SOAP, JDBC и JMS.
- Нагрузка генерации мощности. Программное обеспечение имеет неограниченную грузоподъемность.
- Исполнение. Это легко выполнить. Пользователю просто нужно установить Java, загрузить JMeter и загрузить файл скрипта JMeter.
Отчет об анализе. Результаты легко понять для менее опытных инженеров и пользователей, а также позволяют углубленный анализ для тестеров.
Недостатки Apache JMeter
- Не будучи удобным для пользователей. Вы должны написать много скриптов, так что это не удобно, как другие инструменты. Это может ввести в заблуждение. Чтобы иметь возможность выполнять тестирование, пользователь должен писать скрипты, которые могут быть трудными, запутанными, это приводит к тому, что программное обеспечение не является удобным для пользователя.
- Отсутствие поддержки настольных приложений. JMeter идеально подходит для тестирования веб-приложений, однако он не отлично подходит для настольных тестов приложений.
- Потребление памяти. JMeter способен имитировать тяжелую нагрузку, визуализировать тестовый отчет, который поглощает много памяти, приводит к тому, что память находится под большой нагрузкой.
- Нет поддержки JavaScript. JMeter не является браузером, поэтому он ведет себя только или имитирует реальный браузер. Он не поддерживает AJAX и JavaScript, поэтому это влияет на эффективность теста. Вы не можете правильно оценить производительность на стороне клиента (для получения дополнительной информации о плюсах и минусах JMeter ознакомьтесь с нашим Окончательным руководством по тестированию производительности с JMeter)
Грузнинья
LoadNinja является платформой для тестирования нагрузки в облаке, позволяющей надежно определять производительность веб-сайтов и веб-приложений без использования каких-либо скриптов. LoadNinja была построена и разработана с нуля до средств массовой информации проблемы, с которыми сталкиваются обычные протокольные инструменты тестирования нагрузки. Мы обсудим некоторые из основных моментов и ограничений LoadNinja.
Преимущества LoadNinja
- Использует реальные браузеры
- Метрики на основе браузера с функциями аналитики и отчетности.
- VU Дебуггер. Позволяет разработчикам находить и изолировать ошибки во время теста.
- VU инспектор. Дает пользователям представление о том, как виртуальные пользователи взаимодействуют со своими веб-страницами и приложениями во время тестирования.
- Инструмент записи. Как и EveryStep Web Recorder, который мы будем охватывать более подробно ниже, позволяет точки и нажмите сценарий.
Недостаток LoadNinja
- Зависит от AJAX. Не работает, если JavaScript отключен или не поддерживается.
- Динамический контент. Динамический контент не будет виден для приложения на основе AJAX.
- Задержка. Проблемы с задержкой могут быть выше, только на основе асинхронного поведения AJAX.
- Стоимость. Может быть дорогой, по сравнению с другими инструментами на рынке и функции включены.
Грузоподъемнаяраннер
Это инструмент тестирования программного обеспечения от Micro Focus. Он используется для тестирования приложений, измерения поведения системы и производительности под нагрузкой. Он может имитировать тысячи пользователей одновременно с помощью программного обеспечения приложений. Давайте кратко рассмотрим, что делает LoadRunner популярным и некоторые недостатки решения.
Преимущества LoadRunner
- Повтор и запись функциональности (в дополнение к автоматизированной корреляции).
- Разнообразие протоколов поддерживается в дополнение к проприетарным протоколам, таким как Remote Desktop, Citrix и Mainframes.
- Программное обеспечение может попытаться выполнить автоматизированный анализ узкого места.
- Интеграция с инфраструктурой, такой как HP ALM, КТП.
Программное обеспечение может контролировать себя и тестируемое приложение с точки зрения наличия ресурсов (RAM, процессор и т.д.).
Недостатки LoadRunner
- LoadRunner является дорогостоящим инструментом тестирования программного обеспечения. Недавно он выпустил бесплатную пробную версию, однако он не может быть просто загружен для использования.
- LoadRunner имеет ограниченную грузоподъемность. Пользователь не может перегрузить инструмент LoadRunner слишком большим количеством пользователей или потоков. (Если пользователь ищет инструмент тестирования производительности, который будет выполнять тяжелые испытания, а также слишком много пользователей и групп потоков, то LoadRunner не будет лучшим выбором).
- Исполнение является сложным. Он создает один поток для каждого пользователя.
- С точки зрения анализа отчета, информация в сыром формате, который анализируется HP Анализ для создания различных графиков.
LoadView
Программное обеспечение представляет собой облачный инструмент стресс-тестирования и нагрузочного тестирования для веб-страниц, веб-приложений, API и даже потокового мультимедиа. Поскольку LoadView основан на облаке, инженеры и тестеры могут быстро подкручиваться и масштабировать нагрузочных тестов в зависимости от их требований к нагрузке. Пользователь может производить столько трафика, сколько запрашивается. В этом процессе пользователю не нужно обрабатывать дополнительную инфраструктуру, что является огромным преимуществом перед открытым исходным кодом инструментов, таких как JMeter, который требует от пользователей для запуска тестов со своих собственных машин, и не может масштабироваться до уровня, который предлагает LoadView Кроме того, программное обеспечение генерирует последовательность запросов HTTP GET/POST для тестирования веб-серверов и веб-API.
Преимущества LoadView
- Никаких долгосрочных ценовых обязательств, поставляется с моделью ценообразования с оплатой по мере использования, поэтому клиенты могут загружать тест, когда это необходимо.
- Поддерживается поддержка сценариев записи пользовательских сценариев для динамических и богатых интернет-приложений (RIAs), таких как Java, HTML5, Flash, Vue, Angular, React, PHP, Silverlight и Ruby (среди многих других). Если он может быть отрисовается в браузере пользователя, веб-регистратор EveryStep поддерживает его.
- Пользователи могут использовать серверы из многочисленных глобальных географических мест, чтобы имитировать ожидаемую базу пользователей.
- Создание скриптов тестирования нагрузки, даже не касаясь строки кода.
- Тестирование облачной нагрузки в реальных браузерах.
- Проверьте совместимость на более чем 40 настольных/мобильных устройствах и браузерах.
- Более 20 геолокаций инжекторов нагрузки по всему миру.
- Диагностировать узкие места, обеспечить масштабируемость и определить общую производительность.
- Отчеты о производительности, метрики планирования емкости, панели мониторинга производительности и многое другое.
Резюмируя этот раздел, показано, что LoadView проще в использовании, эффективнее, чем другие оставшиеся инструменты, которые мы рассмотрели.
Упаковка: AWS Тестирование нагрузки – Балансировка нагрузки и лучшие практики
В этой статье мы рассмотрели, как проводить распределенную нагрузку с помощью AWS, которая очищает все тонкости генерации нагрузки для тестирования приложений в масштабе. Тестирование загрузки AWS используется для оказания помощи пользователям в создании и воспроизведении тысяч подключенных пользователей, достигающих количества транзакций. Мы также рассмотрели функцию автоматического скалки в AWS, включая определения автоскальзации, как создать эластичные балансеры нагрузки для запуска конфигурации, и настройку автоскальзации. Мы также приняли взглянуть на некоторые из других популярных инструментов тестирования нагрузки на рынке и почему LoadView гораздо проще в использовании, чем другие инструменты.
Для более глубокого взгляда на LoadView по сравнению с другими инструментами и решениями тестирования нагрузки на рынке сегодня, пожалуйста, посетите нашу страницу Альтернативы для всеобъемлющего бок о бок сравнения и информации.
Начните работу с LoadView уже сегодня! Подпишитесь на бесплатную пробную версию и получите бесплатные нагрузочные тесты при запуске.