Как использовать Apache JMeter для выполнения нагрузочного тестирования на веб-сервере

  1. Вступление В этом руководстве мы рассмотрим, как использовать Apache JMeter для выполнения базовых...
  2. Установите JMeter
  3. Создание базового плана тестирования
  4. Добавить группу тем
  5. Добавить HTTP-запрос по умолчанию
  6. Добавить HTTP Cookie Manager
  7. Добавить сэмплер HTTP-запроса
  8. Добавить результаты просмотра в Table Listener
  9. Запустите базовый план тестирования
  10. Интерпретация результатов
  11. Увеличение нагрузки
  12. Заключение

Вступление

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

JMeter - это настольное Java-приложение с открытым исходным кодом, предназначенное для загрузки и тестирования производительности. Его можно использовать для имитации загрузки различных сценариев и вывода данных о производительности несколькими способами, включая файлы CSV и XML, а также графики. Поскольку это 100% Java, он доступен на каждой ОС, которая поддерживает Java 6 или более позднюю версию.

Предпосылки

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

Вы можете адаптировать тесты в этом руководстве к любому из ваших собственных веб-приложений. В качестве примера веб-сервера, который мы тестируем, является 1 ЦП / 512 МБ VPS с WordPress в стеке LEMP в центре обработки данных DigitalOcean в Нью-Йорке. Компьютер JMeter работает в офисе DigitalOcean в Нью-Йорке (что связано с задержкой наших тестов).

Обратите внимание, что результаты теста JMeter могут быть искажены различными факторами, включая системные ресурсы (ЦП и ОЗУ), доступные для JMeter, и сеть между JMeter и тестируемым веб-сервером. Размер нагрузки, которую JMeter может генерировать без искажения результатов, можно увеличить, запустив тесты в неграфическом режиме или распределив распределение нагрузки на несколько серверов JMeter.

Установите JMeter

Поскольку мы используем Apache JMeter в качестве настольного приложения и существует большое разнообразие используемых настольных ОС, мы не будем рассматривать шаги установки JMeter для какой-либо конкретной ОС. При этом, JMeter очень прост в установке. Самыми простыми способами установки являются использование менеджера пакетов (например, apt-get или Homebrew), загрузка и разархивирование двоичных файлов JMeter с официального сайта и установка Java (версия 6 или более поздняя).

Вот список программного обеспечения со ссылками на архивы, необходимые для запуска JMeter:

В зависимости от того, как вы устанавливаете Java, вам может понадобиться добавить каталог Java bin в переменную среды PATH, чтобы JMeter мог найти двоичные файлы Java и keytool.

Также мы будем ссылаться на путь, в который вы установили JMeter (каталог, в котором вы его разархивировали), как $ JMETER_HOME. Поэтому, если вы работаете в ОС Linux или Unix, бинарный файл JMeter находится по адресу $ JMETER_HOME / bin / jmeter. Если вы работаете в Windows, вы можете запустить $ JMETER_HOME / bin / jmeter.bat.

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

  • Oracle Java 7, обновление 60, 64-разрядная версия
  • JMeter 2.11

После того, как вы установили и запустили JMeter, давайте перейдем к созданию плана тестирования!

Создание базового плана тестирования

После запуска JMeter вы должны увидеть графический интерфейс пользователя с пустым планом тестирования :

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

Добавить группу тем

Сначала добавьте группу потоков в план тестирования :

  1. Щелкните правой кнопкой мыши на плане тестирования
  2. Наведите курсор мыши на Добавить>
  3. Наведите курсор мыши на темы (пользователи)>
  4. Нажмите на группу тем

Группа нитей имеет три особенно важных свойства, влияющих на нагрузочное испытание:

  • Количество потоков (пользователей) : количество пользователей, которые JMeter попытается смоделировать. Установите это на 50
  • Период разгона (в секундах) : продолжительность времени, в течение которого JMeter будет распределять начало потоков. Установите это к 10 .
  • Количество циклов : количество раз, чтобы выполнить тест. Оставьте этот набор равным 1 .

Оставьте этот набор равным 1

Добавить HTTP-запрос по умолчанию

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

  1. Выберите группу потоков , затем щелкните ее правой кнопкой мыши.
  2. Наведите курсор мыши на Добавить>
  3. Наведите курсор мыши на элемент конфигурации>
  4. Нажмите на HTTP-запрос по умолчанию

В разделе «Параметры HTTP-запроса по умолчанию» в разделе «Веб-сервер» заполните поле «Имя или IP-адрес сервера» именем или IP-адресом веб-сервера, который вы хотите проверить. Установка сервера здесь делает его сервером по умолчанию для остальных элементов в этой группе потоков.

Добавить HTTP Cookie Manager

Если ваш веб-сервер использует файлы cookie, вы можете добавить поддержку файлов cookie, добавив HTTP Cookie Manager в группу потоков:

  1. Выберите группу потоков , затем щелкните ее правой кнопкой мыши.
  2. Наведите курсор мыши на Добавить>
  3. Наведите курсор мыши на элемент конфигурации>
  4. Нажмите на HTTP Cookie Manager

Добавить сэмплер HTTP-запроса

Теперь вам нужно добавить сэмплер HTTP-запроса в группу потоков , который представляет запрос страницы, к которому каждый поток (пользователь) будет иметь доступ:

  1. Выберите группу потоков , затем щелкните ее правой кнопкой мыши.
  2. Наведите курсор мыши на Добавить>
  3. Мышь над сэмплером>
  4. Нажмите на запрос HTTP

В разделе «HTTP-запрос» в разделе «HTTP-запрос» заполните путь элементом, который вы хотите, чтобы каждый поток (пользователь) запрашивал. Мы установим это в /, чтобы каждый поток получал доступ к домашней странице нашего сервера. Обратите внимание, что вам не нужно указывать сервер в этом элементе, поскольку он уже был указан в элементе HTTP-запроса по умолчанию.

Примечание. Если вы хотите добавить дополнительные HTTP-запросы в качестве части теста, повторите этот шаг. Каждый поток выполнит все запросы в этом плане тестирования.

Добавить результаты просмотра в Table Listener

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

  1. Выберите группу потоков , затем щелкните ее правой кнопкой мыши.
  2. Наведите курсор мыши на Добавить>
  3. Наведите курсор мыши на слушателя>
  4. Нажмите на Просмотр результатов в таблице

Вы также можете ввести значение для Имя файла, чтобы вывести результаты в файл CSV.

Запустите базовый план тестирования

Теперь, когда у нас есть базовый план тестирования, давайте запустим его и посмотрим результаты.

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

Вы должны увидеть результаты теста в таблице, поскольку тест выполняется следующим образом:

Интерпретация результатов

Вы, вероятно, увидите, что статус всех запросов - «Успешно» (обозначен зеленым треугольником с галочкой в ​​нем). После этого наиболее интересными столбцами являются столбцы Sample Time (ms) и Latency (не показанные в примере).

  • Задержка : количество миллисекунд, прошедших между отправкой запроса JMeter и получением первоначального ответа.
  • Время выборки : количество миллисекунд, затраченных сервером для полного обслуживания запроса (ответ + задержка)

Согласно сгенерированной таблице диапазон времени выборки составлял 128-164 мс. Это разумное время ответа для базовой домашней страницы (около 55 КБ). Если ваш сервер веб-приложений не борется за ресурсы, как показано в примере, на время выборки будут влиять в основном географическое расстояние (которое обычно увеличивает задержку) и размер запрашиваемого элемента (который увеличивает время передачи). Ваши личные результаты будут отличаться от примера.

Таким образом, наш сервер пережил нашу симуляцию 50 пользователей, получивших доступ к нашей домашней странице WordPress 55 КБ в течение 10 секунд (5 каждую секунду), с приемлемым ответом. Посмотрим, что произойдет, когда мы увеличим количество потоков.

Увеличение нагрузки

Давайте попробуем тот же тест с 80 потоками в течение 10 секунд. В элементе « Группа потоков» на левой панели измените Число потоков (пользователей) на 80 . Теперь нажмите View Results in Table , затем нажмите Start . На нашем примере сервера это приводит к следующей таблице:

Как видите, время выборки увеличилось почти до секунды, что указывает на то, что наш сервер веб-приложений начинает перегружаться запросами. Давайте войдем в нашу систему VPS и посмотрим, как мы кратко рассмотрим использование ресурсов во время нагрузочного теста.

Войдите на свой веб-сервер через SSH и запустите top:

Топ

Если у вас нет активных пользователей, обращающихся к вашему серверу, вы должны увидеть, что процент использования процессорами (%) пользователей ( нас ) должен быть очень низким или 0%, а процент простоя ( идентификаторов ) процессоров (%) должен составлять 99% +, как так:

Если у вас нет активных пользователей, обращающихся к вашему серверу, вы должны увидеть, что процент использования процессорами (%) пользователей ( нас ) должен быть очень низким или 0%, а процент простоя ( идентификаторов ) процессоров (%) должен составлять 99% +, как так:

Теперь в JMeter снова запустите тест, а затем переключитесь обратно на сеанс SSH вашего веб-сервера. Вы должны увидеть увеличение использования ресурса:

Вы должны увидеть увеличение использования ресурса:

В нашем примере загрузка ЦП% пользователей составляет 94%, а загрузка системы ( sy ) составляет 4,7% при 0% простоя. У нас не хватает памяти, как показано на рисунке выше, поэтому снижение производительности происходит из-за недостатка мощности процессора! Мы также видим, что процессы php5-fpm, которые обслуживают WordPress, используют большую часть ЦП (около 96% вместе взятых).

Чтобы удовлетворить требования этого моделирования 80 пользователей за 10 секунд, нам нужно либо увеличить наш ЦП, либо оптимизировать настройку нашего сервера, чтобы использовать меньше ЦП. В случае WordPress мы могли бы переместить базу данных MySQL (которая использует часть процессора) на другой сервер, и мы могли бы также реализовать кэширование (что уменьшило бы загрузку процессора).

Если вам интересно, вы можете настроить количество потоков в тесте, чтобы увидеть, сколько ваш сервер может обработать, прежде чем он начнет демонстрировать снижение производительности. В нашем примере с 1 дропом процессора, он работает нормально, пока мы не используем 72 потока в течение 10 секунд.

Заключение

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

Тест, который мы использовали в качестве примера, не совсем точно отражает модель использования обычного пользователя, но у JMeter есть инструменты для выполнения различных тестов, которые могут быть полезны в вашей собственной среде. Например, JMeter может быть настроен для имитации входа пользователя в ваше приложение, кэширования на стороне клиента и обработки пользовательских сеансов с перезаписью URL. Есть много других встроенных сэмплеров, слушателей и инструментов настройки, которые могут помочь вам построить желаемый сценарий. Кроме того, существуют плагины JMeter, расширяющие его функциональные возможности, которые можно загрузить по адресу http://jmeter-plugins.org/ ,

Похожие

Создание веб-картографического сервиса
... добавить больше деталей в больших масштабах карты и устранить некоторые в меньших масштабах карты. Таким образом, вы хотите спроектировать карту так, чтобы визуальный поток карты был плавным от масштаба к масштабу, когда пользователи перемещаются между уровнями масштабирования. Чтобы сделать это правильно, вы должны сделать новую карту для каждого масштаба. Вы можете сделать это в одном документе карты, используя групповой слой для каждого масштаба карты (рисунок 5).
Как использовать Kaspersky с новыми версиями Google Chrome
... как разработчик продуктов безопасности Здесь мы столкнулись с проблемой: как защитить наших клиентов от фишинга , вредоносные веб-сайты, регистраторы ключей и другие угрозы, распространяющиеся по всему Интернету. До этого защита осуществлялась с помощью специальных плагинов, которые вам, конечно, знакомы, поэтому нет необходимости перечислять их здесь.
Как PR-компании редактируют Википедию
... ва по связям с общественностью подозреваются в скрытном редактировании Википедии от имени своих клиентов. Увидеть больше ЭНЦИКЛОПЕДИЯ ИНТЕРНЕТА. Последнее исследование Мегапанели показывает, что 9,7 миллиона
ВВЕДЕНИЕ Развитие технологий, их постепенное внедрение в школьную реальность и стремление преобразоват...
ВВЕДЕНИЕ Развитие технологий, их постепенное внедрение в школьную реальность и стремление преобразовать эту тенденцию в ощутимые выгоды для образования являются определяющими факторами многих экспериментов и инноваций, которые в настоящее время происходят в образовании. Одним из таких начинаний является метод обратного класса , получивший признание практикующих во всем мире. Характеризуется тем, что учащиеся перед занятиями знакомятся с материалами, подготовленными
Как остановить большинство атак на сайт за 5 минут
Мой сервер был сбит известным хакерская группа пытается вымогать меня за 3 биткойна, что в долларах США, на сумму 1500 долларов. Они сказали, что будут продолжать
Заблокируйте свой iPhone в одном приложении с помощью управляемого доступа
Вот сценарий - вы сидите в трибунах на баскетбольном матче вашей дочери. Ее младшая сестра сидит рядом с тобой и говорит: «Мама, мне скучно. Могу ли я сыграть в игру на вашем телефоне? »Вы передаете свой iPhone, и малыш начинает счастливо играть в Angry Birds. Вы возвращаетесь к просмотру игры. Следующее, что вы знаете, она закрыта от Angry Birds, просматривая список ваших камер, и все ваши приложения переставляются. Argh! Знаете ли вы, что на вашем iPhone есть функция, которая позволяет
Windows 10 Октябрь 2018 Обновление: как проверить, были ли потеряны данные?
... как проверить, удалили ли ваши данные обновление Windows 10 за октябрь 2018 года, то все в порядке. Файлы должны быть в состоянии быть восстановленными. Windows 10 Октябрь 2018 Обновление Премьера в начале недели , К сожалению, вскоре после этого они стали появляться
Установите Opera на Debian / Ubuntu / Linux Mint и наслаждайтесь бесплатным безлимитным VPN
... выпущена 19 сентября 2016 года. Самым большим изменением в этой версии является то, что бесплатный, неограниченный, VPN-сервис без броузера на основе браузера включен для всех пользователей. Другие функции в Opera 40 включают в себя: Переключайтесь в режим энергосбережения автоматически, когда ваш ноутбук отключен от сети. Поддержка Chromecast Улучшения всплывающего видео: поддерживается больше видео сайтов и плееров. Читатель новостей теперь имеет
Как восстановить почту, контакты и календарь из файла PST (Outlook)
Программа электронной почты Outlook сохраняет весь наш профиль в файле PST. Есть наши сообщения, полученные по протоколу POP3, отправленные электронные письма, контакты, календарь и другие данные из Outlook. Как мне восстановить содержимое такого файла, когда мы не можем открыть его в Outlook?
Как проверить интернет-соединение вашего компьютера с помощью теста Ping SUPPORTrix
Ping - это утилита администрирования компьютерной сети, которая используется для проверки достижимости хоста по сети IP (интернет-протокола) и для измерения времени прохождения сигнала в обоих направлениях от хоста к компьютеру назначения. Пинг-тест определяет, может ли компьютер взаимодействовать с другими компьютерами по сети. Это также поможет вам определить задержку соединения (задержку) между двумя компьютерами. Ping-тест полезен при устранении проблем с подключением в любой сети.
В Дании изобретатель затопленного подводной лодки рассказал, как погибла журналистка
1:05, 6 сентября 2017 мир 628 Наутилус / REUTERS Датский изобретатель, создатель подводной лодки «Наутилус» Петер Мадсен назвал причиной смерти шведской журналистки Ким Валле случайный удар о люк. Об этом сообщает

Комментарии

Как мне восстановить содержимое такого файла, когда мы не можем открыть его в Outlook?
Как мне восстановить содержимое такого файла, когда мы не можем открыть его в Outlook? Может случиться, что весь наш профиль будет поврежден, и мы не сможем нормально открыть его в Outlook. Это не означает, однако, что все содержимое файла PST подходит
Как в полной мере использовать потенциал сайтов?
Как в полной мере использовать потенциал сайтов? Заказать тот, который имеет CMS. Что такое CMS? CMS (Система управления контентом) является системой управления контентом. Это позволяет редактировать контент на сайте, добавлять / удалять записи или загружать фотографии в галерею без знания языков программирования. В случае расширенных веб-сайтов CMS позволяет выполнять более сложные
Помните сообщения о блокировке автообновлений Google, где мы использовали GPE?
Как в полной мере использовать потенциал сайтов? Заказать тот, который имеет CMS. Что такое CMS? CMS (Система управления контентом) является системой управления контентом. Это позволяет редактировать контент на сайте, добавлять / удалять записи или загружать фотографии в галерею без знания языков программирования. В случае расширенных веб-сайтов CMS позволяет выполнять более сложные
И хотите использовать вместо нее Windows 8?
Как в полной мере использовать потенциал сайтов? Заказать тот, который имеет CMS. Что такое CMS? CMS (Система управления контентом) является системой управления контентом. Это позволяет редактировать контент на сайте, добавлять / удалять записи или загружать фотографии в галерею без знания языков программирования. В случае расширенных веб-сайтов CMS позволяет выполнять более сложные
» «Нужно ли использовать DNS?
» «Нужно ли использовать DNS?» Вы чувствуете смущение? В некоторых случаях DNS может быть запутанным и сложным. Давайте поговорим об услугах D omain N System ( DNS ). Когда вам нужно получить доступ к веб-сайту, вы вводите доменное имя, например www.google.com, в веб-браузер, а не вводите IP-адрес. Конвертация происходит между www.google.com и 172.217.12.46, IP-адресом, назначенным устройству в Интернете. Это преобразование является запросом DNS, неотъемлемой частью устройств,
Что мы имеем здесь?
Что мы имеем здесь? Это Rescapp. Но это не тот Rescapp, о котором я знаю со всеми этими вариантами. Давайте прочитаем заголовок окна: Rescapp Self-Test Rescapp проверяет себя благодаря самопроверке новой функциональности Сначала я подумал, что этот экран предназначен для того, чтобы люди знали, была ли у них загрузка в режиме безопасной загрузки или
Возможно, вы уже догадались, что в классах Font Awesome по умолчанию это делается таким же образом?
Возможно, вы уже догадались, что в классах Font Awesome по умолчанию это делается таким же образом? :) Полный список доступных значений атрибута содержимого находится здесь в то время как сборник информации о самом атрибуте здесь , суммирование Вот и все для меня сегодня. Я думаю, что приведенный выше пример может быть полезен вам время от времени,
Тем не менее, вы должны рассмотреть этот автомобиль над вышеупомянутым Benz или Beemer?
Тем не менее, вы должны рассмотреть этот автомобиль над вышеупомянутым Benz или Beemer? При этом, причины, по которым вы должны - и не должны - участвовать в гонках шведов. С места водителя Все Volvo S60 ездят на том же шасси, что и более крупный S80 (более дорогой седан, предназначенный для Mercedes класса E), что объясняет длинную колесную базу и вместительное ощущение салона. Внутри автомобиль выглядит более воздушным, чем 330i, но не такой открытый, как C320 Mercedes.
Что мы можем посмотреть?
Что мы можем посмотреть? Давайте назовем вещи по имени - на данный момент это довольно ограниченное устройство в польских условиях. У нас до сих пор нет сервисов для воспроизведения музыки и фильмов в Google Play, и их можно транслировать на экран телевизора через Chromecast. У нас также нет официального (потому что неофициального ...) доступа к сервису Netflix, который также можно передавать с компьютера на телевизор через Chromecast. Так что в основном YouTube и зеркальное
Некоторые из более неясных персонажей также могут отображаться как?
Некоторые из более неясных персонажей также могут отображаться как? или пустой или маленький ящик. В старых браузерах даже довольно распространенные неанглийские символы могут отображаться в виде блоков. Старые браузеры могут также вести себя по-разному для некоторых из вышеперечисленных проблем, показывая? и пустые коробки чаще. Базы данных Приведенное выше обсуждение позволило избежать среднего этапа процесса - сохранения данных в базе данных. Базы данных,
Как решить YouTube не будет загружать MP4?
Как решить YouTube не будет загружать MP4? Чтобы решить, не может загрузить MP4 на YouTube, одним из рекомендуемых решений является преобразование MP4 в формат, совместимый с YouTube, такой как FLV, MP4 и т. Д. В этом отрывке мы хотели бы порекомендовать идеальный конвертер MP4 в YouTube под названием iDealshare VideoGo, с помощью которого вы можете легко конвертировать MP4 с различными кодеками в YouTube с поддержкой MP4 или просто конвертировать MP4 в YouTube с поддержкой FLV.

Могу ли я сыграть в игру на вашем телефоне?
Как мне восстановить содержимое такого файла, когда мы не можем открыть его в Outlook?
Как мне восстановить содержимое такого файла, когда мы не можем открыть его в Outlook?
Как в полной мере использовать потенциал сайтов?
Что такое CMS?
Как в полной мере использовать потенциал сайтов?
Что такое CMS?
Как в полной мере использовать потенциал сайтов?
Что такое CMS?
» «Нужно ли использовать DNS?
О школе
О школе

О школе

Школа была открыта в 1959г. Первые выпускники были выпущены в 1966 г. Учредителем является МНО РТ, Горисполком. Координаты школы: Республика Татарстан, 420012, г. Казань, ул. Муштари д.6.
История

История

Школа № 18 была создана в 1959 году, как первая школа в республике Татарстан с углублённым изучением английского языка. Реформирование школьного образования проводится в школе по
Похожие новости /   Комментарии

    Обновления сайта

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

    О школе

    Школа была открыта в 1959г. Первые выпускники были выпущены в 1966 г. Учредителем является МНО РТ, Горисполком. Координаты школы: Республика Татарстан, 420012, г. Казань, ул. Муштари д.6. Полное название- Средняя школа №18 с углублённым изучением английского языка Директор: Шевелёва Надия Магсутовна. Научный руководитель: Русинова Сазида Исмагиловна,

    История

    Школа № 18 была создана в 1959 году, как первая школа в республике Татарстан с углублённым изучением английского языка. Реформирование школьного образования проводится в школе по эволюционному пути, избегая резких преобразований, опасных в этой системе человеческой деятельности. С этой целью 7 лет школа работала в условиях экспериментальной площадки, где