Выбрать страницу

Тестирование нагрузки очень важно для оценки производительности веб-сайта, веб-приложений и API во время обычных, тяжелых или даже внезапных скачков трафика. Эта должность поможет понять тестирование нагрузки с помощью контейнеров Docker с инструментами непрерывной интеграции (CI). Подход Docker к загрузке тестовых приложений позволяет легко делиться тестами между пользователями и реплицировать тестовую среду с помощью контейнеров Docker. Мы кратко объясним, что такое Docker, и используем контейнеры и инструменты Docker, используемые для загрузки тестовых приложений через CI.

 

Что такое Докер?

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

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

 

Что такое контейнер докера?

Контейнер Docker — это легкий, автономный, выируемый пакет программного обеспечения, который включает в себя все, что нужно приложению: кодовую базу, системные библиотеки, системные инструменты и настройки. Контейнер завершает код и его зависимости вместе, что помогает приложению быстро и надежно работать из одной среды в другую.

 

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

 

Ключевые особенности докера

  • Легко масштабируемый. Благодаря легким контейнерам, контейнеры докеров могут вращаться в считанные секунды и могут легко масштабироваться.
  • Повышает производительность. Это облегчает технические накладные расходы для разработки приложений, настройки среды. Кроме того, это помогает выполнять приложение в изолированной среде и сокращает использование ресурсов.
  • Изоляция приложения. Каждое приложение работает независимо друг от друга и запускает приложения в изоляции.
  • Снижение затрат на инфраструктуру и техническое обслуживание. Это помогает поддерживать существующие платформы, которые будут перемещены в Docker легко, который работает в автоматическом порядке, следовательно, снижение расходов на техническое обслуживание.
  • Рой. Swarm является инструментом кластеризации и планирования контейнеров Docker. Это позволяет пользователю управлять несколькими контейнерами, развернутыми на нескольких компьютерах-хозяинах.
  • Маршрутная сетка. Это помогает в маршрутизации и балансировке трафика в контейнеры.

 

Преимущества докера

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

 

Докер Внутри CI Инструменты

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

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

 

Ограничения использования Docker для тестов производительности

Хотя Docker имеет много преимуществ, он имеет несколько ограничений при выполнении теста производительности:

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

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

 

Интеграция тестирования нагрузки LoadView с Дженкинсом

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

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

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

Теперь мы рассмотрим шаги, связанные с выполнением нагрузочных тестов через интеграцию Jenkins с LoadView:

  1. Прежде чем мы начнем использовать сценарий тестирования нагрузки LoadView для тестирования сборки в Jenkins, нам необходимо иметь сценарий тестирования на LoadView, где мы можем добавить список API, которые должны быть проверены на стресс.
  2. Чтобы начать интеграцию с Jenkins, нам нужен уникальный идентификатор LoadView, который можно использовать в качестве токена LoadView Security.
  3. В LoadView создайте интеграционный UID в рамках интеграции > учетной записи > Добавить интеграционную > нагрузку тестирование веб-API. Копировать эту интеграцию UID.

UID-интерфейсы интеграции docker

 

  1. Чтобы установить стресс-тест, нам потребуется идентификатор тестового сценария. Идентификатор сценария можно найти на странице настройки сценария, как показано ниже.

Сценарий тестирования нагрузки докера

 

Настройка LoadView Плагин в Дженкинс

  1. Войдите в свой аккаунт Дженкинса.
  2. В Jenkins перейдите на учетные > данные, добавляйте > токен безопасности LoadView (UID). Настройка и проверка учетных данных:
  • Вид: Токен безопасности LoadView (UID).
  • Область применения: Установить как глобальный.
  • ID: Оставьте по умолчанию или укажите уникальный идентификатор.
  • Описание/ см. : Введите уникальное описание, чтобы установить его отдельно от других тестов.
  • UID: Введите UID со своей учетной записи LoadView. После добавления выберите Validate UID, чтобы обеспечить доступ Jenkins к API LoadView.

3. Далее выберите работу и нажмите Настройка

Докер Дженкинс

 

  1. Перейти к > созданию пост-сборки > Действия Добавить после сборки > действий LoadView-Run сценарий тестирования нагрузки. Укажите настройки стресс-теста LoadView для сборки:
  • Учетные данные: Выберите ключ API с помощью описания.
  • Идентификатор сценария:Вставьте идентификатор тестового сценария, который вы хотите использовать в сборке. Копировать идентификатор со страницы сценария в LoadView.
  • Порог ошибки: Здесь вы можете установить порог ошибки, который является приемлемым для вашего конкретного сценария. Если процент переступит этот порог, он будет помечен как сбой в Jenkins.
  • Среднее время:Укажите средний срок ответа во время теста. Как и порог ошибки, если лимит превышен, он будет записан как неудачный в Jenkins.
  1. Нажмите Сохранить.

Просмотр результатов тестирования:

При запуске теста статус отображается в режиме реального времени в выходе консоли Jenkins.

Выход консоли Дженкинса

 

Результаты работы Дженкинса

 

Заверните: Тестирование нагрузки приложения Docker

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

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

Попробуйте платформу LoadView сегодня и получите до 5 бесплатных тестов , чтобы начать работу.