Learn jMeter
jMeter — это программное обеспечение для тестирования с открытым исходным кодом. Это 100% чистое Java-приложение для нагрузочного тестирования и тестирования производительности.
jMeter предназначен для покрытия различных категорий тестов, таких как нагрузочное тестирование, функциональное тестирование, тестирование производительности, регрессионное тестирование и т. д., и для него требуется JDK 5 или выше.
Это приложение предоставляет всесторонний обзор инфраструктуры jMeter, включая ее планы тестирования, прослушиватели, функции и регулярные выражения.
Это приложение предназначено для специалистов по программному обеспечению в области тестирования, которым необходимо тестировать приложения корпоративного уровня на устойчивость и надежность.
Прежде чем приступить к работе с этим приложением, вы должны иметь базовое представление о языке программирования Java. Поскольку вы собираетесь использовать jMeter для выполнения всех типов тестирования (регрессионного, функционального, нагрузочного, производительного и т. д.) на разных этапах проекта Java, рекомендуется хорошо разбираться в процессах разработки и тестирования программного обеспечения.
Apache JMeter para realizar teste de performance em aplicações Web
Последнее обновление
31 окт. 2022 г.
Книги и справочники
Безопасность данных
arrow_forward
Чтобы контролировать безопасность, нужно знать, как разработчики собирают ваши данные и передают их третьим лицам. Методы обеспечения безопасности и конфиденциальности могут зависеть от того, как вы используете приложение, а также от вашего региона и возраста. Информация ниже предоставлена разработчиком и в будущем может измениться.
Источник: play.google.com
Тестирование нагрузки веб-сервера при помощи Apache JMeter
Данное руководство демонстрирует использование Apache JMeter для выполнения базового и стрессового тестирования нагрузки среды приложения. Руководство поможет создать план и запустить тестирование веб-сервера при помощи графического интерфейса.
JMeter – это настольное приложение Java с открытым исходным кодом, предназначенное для проведения тестирования нагрузки и измерения производительности. Оно позволяет имитировать нагрузку и предоставляет несколько способов получения данных о производительности (в том числе графики, файлы CSV и XML). Будучи полноценным приложением Java, JMeter доступен на любой ОС, поддерживающей Java 6 и выше.
Требования
Для выполнения руководства понадобится компьютер для запуска JMeter и тестирования веб-сервера.
Внимание! Не рекомендуется запускать эти тесты в среде производства: это может негативно повлиять на производительность сервера.
Данное руководство можно адаптировать для любого приложения; все примеры демонстрируются на WordPress, установленном на стек LEMP. Все программы установлены на виртуальный выделенный сервер 1 CPU / 512 MB.
Tutorial JMeter iniciantes
Пожалуйста, обратите внимание: результаты тестирования JMeter могут быть искажены различными факторами, в том числе объёмом системных ресурсов, доступных JMeter, и самим веб-сервером. Нагрузку, которую JMeter может создать без искажения результатов, можно увеличить, запустив тестирование в неграфическом режиме или распределив нагрузку на несколько серверов JMeter.
Установка 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.
В данном руководстве используются следующие версии программ:
- Oracle Java 7 (64-бит);
- JMeter 2.11
Установив 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-адрес веб-сервера, который нужно протестировать. Установленный здесь сервер становится сервером по умолчанию для остальных элементов этой группы потоков.
Добавление HTTP Cookie Manager
Если сервер использует 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.
Также можно задать 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 и многое другое.
Источник: www.8host.com
Нагрузочное тестирование базы данных с помощью Apache JMeter
Нагрузочное тестирование используется для проверки отказоустойчивости приложений, использующих базу данных, наличие проблем с производительностью и масштабируемостью при различном уровне нагрузки.
Необходимые ресурсы
- Установите Java Development Kit.
- Установите Apache JMeter.
Пример использования
Выполним нагрузочное тестирование базы данных с помощью Apache JMeter. Чтобы измерить ее производительность, используем драйвер MySQL JDBC.
План тестирования базы данных
План тестирования описывает последовательность шагов, которые должен выполнить JMeter. Для его составления необходимы следующие элементы:
- Группа потоков.
- Запрос JDBC.
- Сводный отчет.
Добавление пользователей
Группа потоков предоставляет подробную информацию о количестве пользователей, частоте и количестве запросов, которые будут отправлены пользователями во время тестирования.
Чтобы создать группу потоков, выполните следующие действия:
- В левой панели кликните правой кнопкой мыши по Test Plan .
- Выберите Add → Threads (Users) → Thread Group.
- Укажите имя группы потоков – « JDBC Users ».
- Нажмите кнопку Add и измените значения свойств, используемые по умолчанию, следующим образом:
- No. of Threads (users): 10.
- Ramp-Up Period (in seconds): 100.
- Loop Count: 10.
Примечание. Ramp-Up Period указывает время, необходимое для увеличения количества потоков до максимального значения.
Мы используем 10 потоков, а период разгона составляет 100 секунд. Каждый новый поток запускается через 10 секунд после начала предыдущего. Таким образом, запрос будет выполнен 10 (потоков) * 10 (циклов) = 100 раз. Аналогично, для 10 таблиц общее количество экземпляров составляет 100.
Добавление запросов JDBC
Чтобы добавить запрос JDBC, выполните следующие действия:
- В левой панели кликните правой кнопкой мыши по Thread Group .
- Выберите Add → Config Element → JDBC Connection Configuration .
- Настройте следующие параметры:
- Variable Name: myDatabase
Примечание . Это имя должно быть уникальным, так как оно используется JDBC Sampler для идентификации используемой конфигурации.
- Database URL: jdbc:mysql://ipOfTheServer:3306/cloud
- JDBC Driver class: mysql.jdbc.Driver.
- Username: имя пользователя базы данных.
Добавление сэмплера
Чтобы добавить сэмплер, выполните следующие действия:
- В левой панели кликните правой кнопкой мыши по Thread Group .
- Выберите Add → Sampler → JDBC Request .
- Укажите Variable Name: «myDatabase».
- Введите запрос в поле SQL Query.
Добавление обработчика для просмотра и сохранения результатов теста
Чтобы просмотреть результаты теста, выполните следующие действия:
- В левой панели кликните правой кнопкой мыши по Thread Group .
- Выберите Add → Listener → View Results Tree/Summary Report/Graph Results .
- Сохраните план тестирования и нажмите Run (Start или «Ctrl + R»), чтобы запустить тест.
- Все результаты теста будут сохранены в обработчике.
Просмотр результатов теста:
Результаты можно просмотреть в древовидном формате:
В табличном представлении:
А также в виде диаграмм:
Показатели эффективности
С помощью JMeter можно увидеть различные показатели производительности.
Пропускная способность
Общее количество запросов в единицу времени, отправленных на сервер во время теста.
В нашем случае пропускная способность составляет 61,566 / в минуту. Высокое значение пропускной способности указывает на хорошую производительность.
Задержка
Задержка при передаче сообщения. Меньшее значение задержки указывает на большой объем отправляемой / получаемой информации. В нашем примере задержка для первого потока составляет 24446.
Минимальное / максимальное время загрузки / время отклика / время выборки
Разница между временем отправки запроса и временем получения ответа. Время отклика всегда больше или равно задержке.
В нашем примере для всех запросов время отклика> = задержка.
Линия 90% (90-ый процентиль)
Пороговое значение, ниже которого попадает 90% экземпляров. Чтобы вычислить этот показатель, отсортируйте экземпляры транзакций по их значению и удалите верхние 10% экземпляров. Самое большое из оставшихся значений – это линия 90 %.
Ошибки
Общий процент ошибок, найденных в экземпляре запроса. Значение 0,00% указывает на то, что все запросы выполнены успешно и производительность хорошая.
Стандартное отклонение
Более низкое значение стандартного отклонения указывает на большую согласованность данных. Стандартное отклонение должно быть меньше или равно половине среднего времени для метки. Если значение больше, это указывает на недопустимое значение. В нашем случае это 2881.
Минимальное время
Минимальное время, необходимое для отправки запросов. Общее время равно минимальному времени для всех образцов. В нашем случае это 0 мс.
Максимальное время
Максимальное время, необходимое для отправки запросов. Общее время равно максимальному времени для всех образцов. В нашем случае это 23 234 мс.
Среднее время
Среднее время ответа на запрос
КБ / сек
Измерение пропускной способности в килобайтах в секунду. В нашем случае это 0.
Сэмплеры
Общее количество запросов, отправленных на сервер. В нашем случае это 100.
Заключение
В этой статье мы рассмотрели тестирование производительности базы данных с помощью JMeter путем увеличения пользовательской нагрузки.
Полученные в ходе тестирования показатели могут использоваться в Performance Tuning Engineer для выявления слабых мест производительности.
Источник: www.internet-technologies.ru
Применение JMeter для нагрузочного тестирования
Jmeter — удобный тестовый инструмент для создания как простых, так и сложных сценариев нагрузочного тестирования. Он универсален в применении и используется в различных целях: — поиск сложноуловимых багов, связанных с падением сайта; — быстрый прогрев кэша одновременно на тысячах страниц; — создание в базе приложения нескольких тысяч записей с данными пользователей в кратчайшие сроки; — тестирования бэкенда мобильного приложения и т. п.
Т. к. JMeter является Java-апплетом с GUI, то при тестировании он запускается без графического интерфейса. Однако для написания тестовых скриптов существует удобная панель. Вот, к примеру, как выглядит создание скрипта:
Тестировщик создаёт общий Test Plan и закидывает в него Thread Group с основными элементами теста: контроллерами, которые управляют процессом, и запросами (HTTP, FTP и т. д.).
Кроме того, для задания параметров существуют дополнительные элементы. Допустим, HTTP Request Defaults, позволяющий указать заголовки и основной сервер, а также включить и выключить загрузку дополнительных ассетов (стилей, шрифтов, картинок и пр.). В принципе, разобраться в этом не представляет труда. Причём вы можете запустить тест и увидеть результаты сразу же из этого интерфейса.
JMeter умеет записывать тестовые сценарии. Инструмент запускается на локальной машине в виде прокси и при определённых настройках браузера (либо приложения) вы сможете вести трафик через этот прокси, а JMeter запишет все запросы и ответы на запросы. В результате, из полученного набора вы сможете создать тестовый сценарий, который станет повторять действия пользователя. Запустить сценарий сможете где угодно и когда угодно:
Один из самых простых способов начать работу с Apache JMeter описан, например, здесь. Также не забывайте о том, что можно и нужно изучать официальную документацию по JMeter.
Особенности написания скриптов и сценариев JMeter изучаются на курсе «Нагрузочное тестирование» OTUS. Студенты выполняют задание по разработке скрипта, подготавливают сценарий, проводят тест и анализируют результаты.
Источник: otus.ru