Как установить jmeter windows

10 шагов для запуска тестирования производительности с Apache JMeter.

Давайте представим, что Вы — единственный тестировщик на проекте, а то и во всей компании. Компания подписала контракт на разработку продукта, в котором очень важна производительность, а у Вас нет ни малейшего представления о том, с чего начать. Инструментов представлено большое количество, и выбрать какой-либо не так уж просто. Сейчас я предлагаю ознакомиться с Apache JMeter и запустить первый тест за 10 простых шагов. Предварительно нужно убедиться что установлена Java 8 или Java 9 на устройстве, с которого будут запускаться тесты.

  1. Скачиваем JMeter с сайта jmeter.apache.org в нужном формате

2. Распаковываем архив. Путь к распакованной папке не должен содержать кириллицу или пробелы. Открываем распакованную папку, заходим в папку /bin, там находим сам JMeter (jmeter.bat для Windows
jmeter.sh для Unix) и запускаем его. В результате будет представлен такой интерфейс:

3. Далее нам нужно добавить пользователей, которые будут ходить на страничку. Для этого снова выбираем тест план правым кликом и далее следуем в /Add/Threads (Users)/Thread Group. В итоге, в тест плане появляется следующий элемент:

  • Number of Threads — число пользователей, которые будут обращаться по запросу, указанному в HTTP Request Defaults.
  • Ramp-Up Period — время, в течение которого будут прибавляться юзеры. Позволяет делать плавный и прогнозируемый старт.
  • Loop Count — количество итераций. На скриншоте выше значение равно 1, то есть каждый пользователь сделает всего 1 запрос.

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

4. Для запуска теста нужно указать инструменту адрес сервера, который будет подвержен нагрузке с типом запроса. Это делается через правый клик по уже добавленному Thread Group и выбор Add/Sampler/HTTP Request

5. После добавления элемента можно указывать адрес сервера. Прежде чем ходить на чьи-то реальные/тестовые серверы и наводить панику на команды разработки и поддержки, стоит попробовать свои силы на простейшем примере поисковой системы. В данном случае я предлагаю сходить на google.com, а точнее, на страницу, так называемого, “Мне повезёт!” (https://www.google.com/doodles/). Для этого в протоколе указываем https, в адресе сервера google.com, а в пути расположение страницы /doodles/, ну и не забываем про тип запроса GET .

6. Тест нужно сохранить в папку /bin (там же, где лежит сам JMeter), далее, запустить терминал/командную строку и перейти в папку /bin, из которой на втором шаге запускали JMeter. Графическую оболочку лучше закрыть перед запуском теста. Запуск теста осуществляется командой:

  • jmeter -n -t test_name.jmx -l log.jtl (Windows)
  • sh jmeter.sh -n -t test_name.jmx -l log.jtl (Unix)

В примерах команд выше test_name.jmx — имя сохранённого теста, а log.jtl — имя файла, в который будут сохранены результаты теста. Ключ -n нужен для запуска инструмента в режиме без интерфейса (чтобы повысить производительность), ключ -t указывается перед именем сохраненного файла с тестом, ключ -l указывается перед именем файла, который будет создан в ходе прохождения теста и содержать отчёт.

Читайте также:  Поднять smtp сервер linux

7. Запускаем тест и ждём его завершения.

8. Далее, можно запустить JMeter командой jmeter (Windows) или sh jmeter.sh (Unix) отсюда же, из терминала/командной строки, или по старинке из папки /bin. После запуска нужно открыть сохранённый тест (в моём случае это doodles_test.jmx) и для него добавить отчёты. Самый простой отчёт — Summary Report, который добавляется через правый клик по Test Plan и, далее, Add/Listener/Summary Report. Listener’ы можно добавлять и в ходе настройки теста. Итак, Summary Report выглядит следующим образом:

9. Чтобы посмотреть результаты теста, нужно нажать Browse…, найти файлик с логами в формате *.jtl, который был прописан в шаге 6, и открыть его. В результате будет следующее:

10. Что можно понять из данного отчёта?

  • Было сделано 20 запросов (Samples) по указанному в конфиге адресу (10 пользователей по 2 раза каждый)
  • Среднее время ответа составило чуть меньше чем 1,1 секунды (Average); минимальное время ответа чуть менее чем 0,7 секунды (Min); максимальное время ответа чуть менее чем 1,5 секунды (Max).
  • В секунду проходило 6,4 запроса (Throughput).
  • Std Dev — показатель стандартного отклонения. Насколько я знаю, им мало кто пользуется, но, раз уж он есть, то… Этот показатель позволяет оценить насколько сильно значения из выборки (результата тестового прогона) отличаются от рассчитанного среднего значения.
  • Error %—количество ошибок в процентах, которые вернул сервер
  • Received и Sent KB/sec — количество полученных и отправленных данных
  • Avg.Bytes — среднее количество полученных данных

Заключение: В данной статье я постарался описать, пожалуй, один из самых простых способов начала работы с Apache JMeter. Причина проста — когда-то мне самому нужна была наглядная пошаговая инструкция для пробного запуска моего первого нагрузочного теста. Конечно, можно (и нужно!) изучать документацию по JMeter, смотреть видео инструкции, собирать информацию по форумам, но на это требуется немалое количество времени, которое у тестировщиков, зачастую, в дефиците 🙂

Тестирование нагрузки веб-сервера при помощи Apache JMeter

Данное руководство демонстрирует использование Apache JMeter для выполнения базового и стрессового тестирования нагрузки среды приложения. Руководство поможет создать план и запустить тестирование веб-сервера при помощи графического интерфейса.

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

Требования

Для выполнения руководства понадобится компьютер для запуска JMeter и тестирования веб-сервера.

Внимание! Не рекомендуется запускать эти тесты в среде производства: это может негативно повлиять на производительность сервера.

Данное руководство можно адаптировать для любого приложения; все примеры демонстрируются на WordPress, установленном на стек LEMP. Все программы установлены на виртуальный выделенный сервер 1 CPU / 512 MB.

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

Читайте также:  Programming and internet and windows

Установка JMeter

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

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

Для работы JMeter необходимы следующие программы:

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

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

В данном руководстве используются следующие версии программ:

Установив JMeter, приступим к разработке плана тестирования.

Создание нагрузочного теста

Запустите JMeter. На экране появится графический интерфейс; откройте Test Plan. На данный момент не существует ни одного плана.

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

Добавление группы потоков

Для начала нужно добавить в план группу потоков (Thread Group):

  • Щелкните правой кнопкой по Test Plan
  • Выберите Add >
  • Найдите и выберите Threads (Users) >
  • Выберите Thread Group

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

  • Number of Threads (users): Количество потоков (пользователей), которое будет эмулировать JMeter; установите значение 50.
  • Ramp-Up Period (in seconds): Продолжительность тестирования в секундах. Установите значение 10
  • Loop Count: Количество тестов. Установите 1.

Добавление настроек HTTP

Элемент HTTP Request Defaults используется для установки стандартных значений HTTP-запросов в данном плане тестирования. Добавьте HTTP Request Defaults для Thread Group:

  • Кликните правой кнопкой на Thread Group.
  • Выберите Add.
  • Затем выберите Config Element >.
  • Кликните HTTP Request Defaults.

На экране появятся настройки для HTTP Request Defaults. В разделе Web Server найдите поле Server Name or IP и укажите в нём имя или IP-адрес веб-сервера, который нужно протестировать. Установленный здесь сервер становится сервером по умолчанию для остальных элементов этой группы потоков.

Если сервер использует cookie-файлы, можно настроить их поддержку. Для этого нужно добавить Thread Group элемент HTTP Cookie Manager:

  • Кликните правой кнопкой на Thread Group.
  • Выберите Add.
  • Затем выберите Config Element >.
  • Кликните HTTP Cookie Manager

Добавление сэмплера запросов HTTP

За настройки сэмплера запросов HTTP отвечает компонент HTTP Request, представляющий запросы к странице для каждого потока.

  • Кликните правой кнопкой на Thread Group.
  • Выберите Add.
  • Затем выберите Sampler >.
  • Кликните HTTP Request.

В появившемся окне настроек найдите раздел HTTP Request, в Path укажите объект, которому все пользователи должны отправить запрос. Установите /, чтобы все пользователи отправили запросы к домашней странице. Обратите внимание: сервер указывать не нужно, поскольку он уже указан в HTTP Request Defaults.

Примечание: Чтобы добавить в тест больше HTTP Requests, повторите инструкции данного раздела.

Настройка просмотра результатов

Для вывода результатов нагрузочного тестирования используются плагины JMeter под названием listeners. Существует множество доступных плагинов. Используйте таблицу, поскольку её проще читать.

  • Кликните правой кнопкой на Thread Group.
  • Выберите Add.
  • Затем выберите Listener >.
  • Кликните View Results in Table.
Читайте также:  Установить время сервера linux

Также можно задать Filename, чтобы направить вывод в CSV-файл.

Запуск нагрузочного тестирования

Теперь базовый план готов. Можно запустить тестирование нагрузки и просмотреть результат. Для начала сохраните план, нажав File и Save и указав имя файла. В левой панели выберите View Results in Table, затем нажмите Run и Start в главном меню (можно просто нажать зелёную стрелочку Start под главным меню). Результаты тестирования появятся на экране в виде таблицы.

Анализ результатов

Если в столбце Status появился зелёный треугольник с галочкой в нём, это значит, что все запросы выполнены успешно.

Пожалуй, наиболее важными столбцами вывода являются Sample Time и Latency.

  • Latency: Интервал времени в миллисекундах между отправкой запроса и получением ответа на него.
  • Sample Time: Интервал времени в миллисекундах, необходимый серверу на полную обработку запроса (ответ + время ожидания).

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

Попробуйте выполнить такой же тест, увеличив количество потоков до 80 за 10 секунд. Откройте Thread Group в левой панели и измените Number of Threads (users) до 80. Затем кликните View Results in Table и Start.

В таком случае показатель Sample Time увеличится примерно на секунду, а это значит, что веб-сервер перегружен запросами. Войдите на VPS и просмотрите использование ресурсов во время нагрузочного тестирования.

Для этого используйте команду:

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

top – 16:52:25 up 5 days, 23:18, 1 user, load average: 0.06, 0.16, 0.13
Tasks: 74 total, 1 running, 73 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.0 us, 0.3 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem: 501868 total, 409232 used, 92626 free, 28132 buffres

Как видите, использование Cpu(s) us очень низкое, а id превышает 99%.

После этого снова запустите тест JMeter и вернитесь в SSH-сессию на сервере. Посл этого использование ресурсов возрастёт:

top – 16:45:57 up 5 days, 23:11, 1 user, load average: 0.80, 0.35, 0.16
Tasks: 74 total, 3 running, 71 sleeping, 0 stopped, 0 zombie
%Cpu(s): 94.7 us, 4.7 sy, 0.0 ni, 0.3 id, 0.0 wa, 0.3 hi, 0.0 si, 0.0 st
KiB Mem: 501868 total, 410120 used, 91748 free, 28072 buffres
KiB Swap: 0 total, 0 used, 0 free. 240612 cached Mem

В данном примере пользователи используют 94% CPU, а система (sy) 4.7%.

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

Чтобы оптимизировать работу сервера для поддержки 80 пользователей за 10 секунд, нужно либо увеличить CPU, либо настроить сервер для использования меньшего количества CPU.

Попробуйте изменить количество потоков и выяснить, какое именно количество становится критичным; в данном случае сервер может без сбоев поддерживать 72 пользователя за 10 секунд.

Заключение

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

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

Оцените статью