Статьи

JMeter Tutorial для нагрузочного тестирования — руководство ULTIMATE (PDF Download)

Этот урок о JMeter.
Вот основные моменты, которые мы собираемся охватить:

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

Все примеры были настроены и реализованы с использованием Java 8 update 0.20, Eclipse Luna 4.4, JMeter 2.11 и MySQL Community Server 5.6.21.

1. Введение

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

Это позволяет моделировать различные типы запросов для всех видов баз данных, FTP, HTTP, HTTPS или других типов серверов.

Вероятно, полезно кратко объяснить, что означают все эти понятия:

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

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

2. Используемые технологии

JMeter — это настольное Java-приложение. Его пользовательский интерфейс реализован с использованием Swing Java API. Благодаря этим двум аспектам JMeter является мультиплатформенным и работает на любом типе компьютеров с установленной виртуальной машиной Java: Windows, Linux, Mac.

Его структура обеспечивает параллелизм и выполнение нескольких потоков и групп потоков. Это очень полезно при настройке нагрузочных и стресс-тестов.

Это расширяемый и очень большой список доступных плагинов.

JMeter является частью программного обеспечения Apache и является полностью бесплатным и открытым исходным кодом ( http://www.apache.org/licenses/ ).

3. О чем эта статья?

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

Здесь также приведены примеры и инструкции о различных возможных конфигурациях и планах тестирования. В следующих главах мы увидим, как установить JMeter и как настраивать, запускать, хранить и анализировать результаты различных видов планов тестирования.

4. Установка

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

1
JAVA_HOME=C:\Program Files\Java\jdk1.8.0_20

или какой бы ни была ваша версия Java.

  • Добавьте местоположение компилятора Java в системный путь. Для пользователей Windows:
1
C:\Program Files\Java\jdk1.7.0_25\bin

до конца системной переменной, путь.

  • Убедитесь, что Java установлена ​​на вашем компьютере, перейдя в командную строку и набрав
1
java -version

Должно получиться что-то вроде следующего:

1
2
3
java version "1.8.0_20"
Java(TM) SE Runtime Environment (build 1.8.0_20-b26)
Java HotSpot(TM) 64-Bit Server VM (build 25.20-b23, mixed mode)
  • Загрузите последнюю версию JMeter с http://jmeter.apache.org/download_jmeter.cgi
  • Распакуйте его, например, в папку C:\>JMeter (в Windows).
  • Структура этой папки должна выглядеть примерно так:
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
apache-jmeter-2.9
apache-jmeter-2.9\bin
apache-jmeter-2.9\docs
apache-jmeter-2.9\extras
apache-jmeter-2.9\lib\
apache-jmeter-2.9\lib\ext
apache-jmeter-2.9\lib\junit
apache-jmeter-2.9\printable_docs
  • Затем вы можете запустить JMeter, перейдя в папку C:\jmeter\apache-jmeter-2.11\bin (пользователи Windows) и запустив программу jmeter.bat .
  • Вы должны увидеть начальный экран графического интерфейса JMeter:

Главный экран JMeter

5. Обзор GUI

Графический интерфейс JMeter очень интуитивно понятен и прост в использовании, доступны общие меню для обработки файлов, такие как новые, открытые, сохраненные, сохраненные как и т. Д., А также специальные меню для запуска и остановки планов тестирования и их настройки. Каждый план тестирования, группа потоков и узел плана тестирования (мы увидим это более подробно в следующих главах) предлагают различные варианты контекстного меню, щелкая правой кнопкой мыши.

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

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

6. Доступные запросы

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

  • Web: HTTP, HTTPS сайты ‘web 1.0’ web 2.0 (ajax, flex и flex-ws-amf): позже мы увидим, как проверить потенциальную веб-страницу и ее поведение.
  • Веб-сервисы: SOAP / XML-RPC.
  • База данных через драйверы JDBC. Поддерживается практически любая база данных, вам нужен только подходящий драйвер и упакуйте его в соответствующую папку в установочном каталоге JMeter. Мы сделаем пример теста базы данных MySQL позже.
  • Каталог: LDAP.
  • Сервис обмена сообщениями через JMS
  • Почтовый сервис с использованием POP3, IMAP, SMTP.
  • FTP сервис.
  • Функциональный тест с использованием приложений JUnit и Java.

7. Планы испытаний и компоненты

По сути, использование JMeter состоит из создания, настройки и выполнения планов тестирования и анализа их результатов. Планы тестирования — это наборы запросов к локальным или удаленным серверам (или клиентам), настроенным для выполнения в соответствии с конкретными инструкциями.

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

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

7.1 ThreadGroup

Группа потоков — это комбинация различных элементов плана тестирования. Это корень плана тестирования, и он контролирует основные центральные параметры.

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

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

Группа потоков также имеет параметры конфигурации времени начала и окончания. При установке флажка «Планировщик» появится новый раздел с параметрами расписания, и вы сможете настроить время начала и окончания теста.

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

7.2 Пробоотборники

Пробоотборники используются для отправки запросов на серверы различного типа. Они являются основным элементом каждого плана тестирования, и все работает вокруг них: они выполняют запросы (на основе предоставленной конфигурации), и эти запросы производят один или несколько ответов, которые впоследствии анализируются.
Вот список сэмплеров, доступных в JMeter (некоторые из них мы увидим в этом уроке):

  • Сэмплер журнала доступа
  • Пробоотборник AJP
  • Бобовая оболочка
  • Пробоотборник BSF
  • Отладочный сэмплер
  • FTP-сэмплер
  • Сэмплер HTTP
  • Сэмплер Java
  • JDBC сэмплер
  • JMS (несколько) пробоотборников
  • Пробоотборник JSR223
  • JUnit сэмплер
  • LDAP (несколько) пробоотборников
  • Читатель почты
  • MongoDB сэмплер
  • Образец процесса ОС
  • SMTP-сэмплер
  • МЫЛО
  • Сэмплеры TCP
  • Тестовое действие

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

7.3 Логические контроллеры

Логические контроллеры — это элементы, которые позволяют вам настроить порядок выполнения различных семплеров в группе потоков. Этот список содержит все доступные логические контроллеры в JMeter:

  • Простой контроллер
  • Контроллер петли
  • Единственный Контроллер
  • Контроллер чередования
  • Случайный Контроллер
  • Контроллер случайного порядка
  • Контроллер пропускной способности
  • Контроллер времени выполнения
  • Если контроллер
  • Пока контроллер
  • Переключатель контроллера
  • Контроллер ForEach
  • Контроллер модуля
  • Включить контроллер
  • Контроллер транзакций
  • Контроллер записи

7.4 Слушатели

Слушатели предоставляют различные способы просмотра результатов, полученных запросами Sampler. Слушатели анализируют результаты в виде таблиц, деревьев или простых файлов журнала.

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

Это доступные слушатели в JMeter:

  • Пример результата Сохранить конфигурацию
  • График Полные результаты
  • График Результаты
  • Сплайн визуализатор
  • Результаты утверждения
  • Просмотр дерева результатов
  • Сводный отчет
  • Посмотреть результаты в таблице
  • Простой Data Writer
  • Мониторинг результатов
  • График распределения (альфа)
  • Совокупный график
  • Mailer Visualizer
  • BeanShell Listener
  • Отчет

7.5 Таймеры

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

В JMeter доступны следующие таймеры:

  • Постоянный таймер
  • Гауссовский случайный таймер
  • Единый случайный таймер
  • Таймер постоянной пропускной способности
  • Синхронизирующий таймер
  • Время JSR223
  • Время BeanShell
  • BSF Time
  • Пуассоновское случайное время

7.6 Утверждения

Утверждения подтверждают правильность плана тестирования, подтверждая ответ, полученный на запрос Sampler. В основном утверждения аналогичны утверждениям модульного теста и проверяют качество ответа тестируемого приложения. Вы можете настроить, какие утверждения активны для каждого плана тестирования.

Вот список доступных утверждений в JMeter:

  • Бобовая оболочка Утверждение
  • ЧФ Утверждение
  • Сравнить утверждение
  • Утверждение JSR223
  • Подтверждение ответа
  • Подтверждение продолжительности
  • Утверждение размера
  • Утверждение XML
  • BeanShell Assertion
  • MD5Hex Утверждение
  • HTML утверждение
  • Утверждение XPath
  • Утверждение схемы XML

7.7 Конфигурационные узлы

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

Вот список всех узлов конфигурации, которые можно использовать в JMeter:

  • счетчик
  • Конфигурация набора данных CSV
  • FTP-запрос по умолчанию
  • Диспетчер авторизации HTTP
  • HTTP Cache Manager
  • HTTP Cookie Manager
  • HTTP прокси-сервер
  • HTTP-запрос по умолчанию
  • Диспетчер заголовков HTTP
  • Java-запрос по умолчанию
  • Конфигурация хранилища ключей
  • Конфигурация соединения JDBC
  • Элемент конфигурации входа
  • LDAP-запрос по умолчанию
  • Расширенные настройки запроса LDAP
  • Конфигурация сэмплера TCP
  • Пользовательские переменные
  • Простой элемент конфигурации
  • Случайная переменная

7.8 Предварительные процессоры

Предварительные процессоры — это элементы (действия, утверждения или в основном все, что угодно), которые должны произойти до выполнения сэмплера. Их можно использовать для извлечения переменных из ответа, который впоследствии можно будет использовать в сэмплере через элементы конфигурации.

Это элементы, которые можно использовать в качестве предварительных процессоров:

  • HTML Link Parser
  • Модификатор перезаписи HTTP URL
  • Модификатор параметров пользователя HTTP
  • Пользовательские параметры
  • Препроцессор JDBC
  • Препроцессор JSR223
  • Пользовательские параметры RegEx
  • BeanShell PreProcessor
  • BSF PreProcessor

7.9 Постпроцессоры

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

Эти элементы могут быть использованы в качестве постпроцессоров:

  • Экстрактор регулярных выражений
  • XPath Extractor
  • Обработчик действия статуса результата
  • Постпроцессор JSR223
  • JDBC PostProcessor
  • BSF PostProcessor
  • CSS / JQuery Extractor
  • BeanShell PostProcessor
  • Отладка PostProcessor

8. План испытаний элементов порядка выполнения

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

1 — Конфигурационные узлы
2 — Предварительные процессоры
3 — Таймеры
4 — пробоотборник
5 — Постпроцессоры (выполняются только при наличии доступных результатов)
6 — Утверждения (выполняются только при наличии доступных результатов)
7 — Слушатели (выполняются только при наличии доступных результатов)

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

9. Запустить / остановить планы тестирования

Чтобы запустить план тестирования, вам просто нужно нажать на кнопку "Play" :

JMeter начало

Можно запустить тест и проигнорировать все паузы, нажав на кнопку "Play no pauses"

JMeter начать без пауз

Вы можете остановить тестирование, нажав кнопку "Stop" :

Стоп JMeter

Также возможно отключить планы тестирования на выполнение. Для этого вам просто нужно «переключить» статус плана тестирования:

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

10. Веб (HTTP) план тестирования

В этой главе мы увидим, как создать план для тестирования определенной веб-страницы через HTTP. Для этой цели я буду использовать сайт http://www.wikipedia.org .

Итак, достаточно теории, теперь мы увидим, как настроить план тестирования HTTP-запроса.

  • Переименуйте План тестирования в название, которое вам нравится

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

Основной план испытаний JMeter

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

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

Контекстное меню над планом тестирования -> Добавить -> Тема -> Группа нитей

Основной план тестирования JMeter http

Вы также можете указать действие, которое вы хотите предпринять в случае ошибки (продолжить, остановить, остановить текущий поток…)

  • Добавить запрос Sampler HTTP

На этом шаге мы добавляем сэмплер с информацией HTTP-запроса, который мы хотим протестировать:

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

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

Установите в качестве имени сервера имя сервера, который мы хотим протестировать: в этом случае www.wikipedia.org (без протокола http или https). Вы должны изменить значения соединения для порта, протокола, метода для выполнения на сервере и т. Д. При необходимости, если в нашем случае это не нужно. Есть несколько параметров для настройки прокси, тайм-аутов и другой информации заголовка, но в нашем случае мы оставляем все со значениями по умолчанию

JMeter http конфиг сэмплера

  • Добавить результаты слушателя

Это необходимо, чтобы иметь возможность увидеть результаты впоследствии; Есть несколько возможностей, как мы видели ранее в этом руководстве, для нашего плана тестирования HTTP-запросов мы будем использовать View Results Tree:

Добавить слушателя -> Просмотр дерева результатов

В нашем примере мы ничего не меняем и оставляем все свойства конфигурации со значениями по умолчанию.

JMeter http результаты пусто

  • Сохраните план тестирования и запустите его

Файл-> Сохранить (или нажмите «Control + s»)

Run-> Start (или нажмите кнопку воспроизведения, как описано выше)

  • Проверьте результаты в слушателе

JMeter http результаты отлично

Мы видим, что все запросы были выполнены, как и ожидалось, и все они дают значимые ответы, поэтому кажется, что веб-страница, которую мы тестируем, работает нормально (если это ожидаемое поведение). Мы можем поиграть с результатами и проверить все возвращенные данные.

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

  • Добавить таймер

Чтобы добавить таймер, просто щелкните правой кнопкой мыши план тестирования и добавьте таймер:

Добавить таймер-> Постоянный таймер

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

Таймер

  • Добавить подтверждение продолжительности

В плане тестирования щелкните правой кнопкой мыши и добавьте подтверждение продолжительности, мы настроим его на утверждение false, если ответ занимает более 100 мс, и настроим его только для основного примера:

Добавить утверждение-> Продолжительность утверждения

JMeter длительность утверждения 100

Если мы запустим план тестирования (после сохранения), то увидим, что у нас есть некоторые проблемы с этим утверждением:

JMeter http приводит к продолжительности подтверждения ошибки

Очевидно, это происходит потому, что мы настраиваем утверждение продолжительности только на 100 мс, если мы изменим этот показатель на 2000 мс, почти все запросы будут обслуживаться вовремя.

  • Добавить утверждение размера

Добавить утверждение-> Размер утверждения

и мы гарантируем, что ответ имеет размер больше 5000 байт:

JMeter размер утверждения 5000

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

11. Учебное пособие по плану тестирования базы данных

Теперь мы увидим, как настроить, запустить и проанализировать результаты теста с базой данных MySQL. Этот пример о MySQL, но это может быть сделано с использованием любого другого типа БД, такого как Oracle, MongoDB или других.

  • Установите MySQL

Если на вашем компьютере не установлен MySQL, вы можете скачать его с http://dev.mysql.com/downloads/ и установить сервер MySQL, это очень просто.

  • Скачать драйвер MySQL

Загрузите соединитель mysql ( mysql-connector-java-5.1.6 ) и скопируйте его в каталог lib jmeter C:\jmeter\apache-jmeter-2.11\lib .

  • Запустите MySQL

Запустите сервер БД, чтобы вы могли делать запросы к нему.

  • Создать базу данных

Вы можете создать базу данных, как хотите, вот лишь пример очень простой:

01
02
03
04
05
06
07
08
09
10
11
create database jmeter;
use jmeter;
create table jmeter_stuff(id int, name varchar(50), description varchar(50));
insert into jmeter_stuff(id, name, description)VALUES(1, "dani", "the boss");
insert into jmeter_stuff(id, name, description)VALUES(2, "topo", "the worker");
insert into jmeter_stuff(id, name, description)VALUES(3, "tupac", "the other");
  • Создать план тестирования

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

  • JDBC Sampler

Дайте значимое имя переменной, связанной с пулом, и напишите несколько операторов SQL:

1
select * from jmeter_stuff;

Настройка запроса JMeter db

  • Конфигурация соединения JDBC

Добавьте новую конфигурацию соединения JDBC в сэмплер.

щелкните правой кнопкой мыши на сэмплере JDBC -> добавить конфигурацию соединения

Измените параметры следующим образом:

1
2
3
4
5
6
7
Variable Bound to Pool= same name as in the sampler
Database URl=jdbc:mysql://localhost:3306/jmeter
JDBC Driver class=com.mysql.jdbc.Driver
username=
password=
set username and password to your MySql credentials.

Конфигурация соединения JBeter db

  • Сохраните план и выполните его.
  • Просмотрите результаты, используя предварительно настроенный слушатель.

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


JMeter db результаты ответов

В этом случае выходные данные являются результатами оператора выбора.

Вы можете использовать этот тип сэмплеров для обновления данных, изменив оператор SQL в конфигурации сэмплера.

На следующем снимке экрана представлена ​​основная информация о результатах ответа на запрос:

JMeter db результаты ответа

12. План испытаний Junit

В этой главе мы собираемся объяснить, как использовать JMeter в сочетании с JUnit. Это обеспечивает очень сильные механизмы для выполнения функциональных тестов с точки зрения нагрузки и производительности.

  • Прежде всего вам нужно создать тест Junit, подобный следующему:
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
public class JMeterTest
{
    public JMeterTest()
    {
        // just for testing purposes
        System.out.println( "calling the constructor" );
    }
    @Before
    public void setUp() throws Exception
    {
        // just for testing purposes
        System.out.println( "calling setup" );
    }
    @After
    public void tearDown() throws Exception
    {
        // just for testing purposes
        System.out.println( "calling tearDown" );
    }
    @Test
    public void testMe()
    {
        for( int i = 0; i < 30; i++ )
        {
            // just asserting randomly in order to check what happens in each case
            int randomNumber = (int)( Math.random() * 100 );
            System.out.println( randomNumber );
            assertEquals( 0, randomNumber % 2 );
        }
    }
}

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

  • Добавить тест в каталог JUnit

Упакуйте модульный тест в файл jar и скопируйте его в каталог jmeter/lib/junit . Убедитесь, что файл JAR содержит байт-код .class с тестами, которые вы хотите, чтобы JMeter выполнил. В конце этой статьи вы можете найти java-проект с pom.xml, который вы можете напрямую использовать для создания jar-файла, который может использоваться JMeter. Вам просто нужно скомпилировать код:

1
mvn compile

Или вы можете экспортировать свой проект в виде JAR-файла, включая байт-код и сгенерированные файлы непосредственно в Eclipse или в вашу любимую IDE.

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

Запрос сэмплера JMeter Junit

Создайте план тестирования, как мы видели ранее, и добавьте сэмплер типа JUnit request: Add Sampler-> Junit Request и настройте его для выполнения методов, которые вы хотите использовать в тесте, который вы только что создали выше.

В нашем случае мы собираемся выполнить методы, основанные на JUnit 4, но вы также можете сделать это, используя JUnit 3, установив флажок для этой цели.

Настройка запроса Junit Sampler

  • Добавьте слушателя для просмотра результатов, как мы делали в предыдущих главах
  • Запустите план тестирования
  • Посмотреть результаты

Здесь мы можем увидеть результаты теста JUnit, который мы только что создали:

JMeter просмотреть результаты

Как мы видим на скриншоте выше, все наши тесты (1 тест, 10 циклов) не прошли. Это ожидаемое поведение, так как мы хотели, чтобы наш тест провалился. На самом деле модульный тест, который мы только что написали, не имеет функционального значения и бесполезен. Его цель — показать, как настроить JMeter для использования такого рода модульных тестов.

Материал, описанный в этой главе, может быть очень полезен для тестирования функциональной и бизнес-логики приложения с использованием JMeter со всеми преимуществами, которые предоставляет это приложение, он также очень интересен, поскольку позволяет объединить все преимущества языка Java с возможностями многообъемной обработки. JMeter.

13. Запись тестов HTTP

Теперь мы собираемся объяснить, как настроить JMeter для записи HTTP-запросов. Для этого на нашей машине должен быть установлен Firefox, я использую версию 32.

  • Получите Firefox для использования прокси JMeter

Перейдите к настройкам сети Firefox и выберите опцию прокси-сервера вручную и установите в качестве локального хоста сервера и порт 8080 (на самом деле это зависит от конфигурации JMeter). После этого установите флажок «Использовать этот прокси-сервер для всех протоколов».

Конфигурация JMeter Firefox

  • Прежде всего, мы создаем план тестирования, как мы делали раньше.

Мы добавляем новую группу потоков и даем ей имя. Мы настроили группу потоков на 50 потоков, 10 секунд в качестве периода разгона и количество циклов, равное 1.

Конфигурация группы потоков записи JMeter

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

В только что созданную группу потоков добавляем новый элемент конфигурации и выбираем «HTTP-запрос по умолчанию».

JMeter записывает HTTP-запрос по умолчанию

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

  • Добавить контроллер записи

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

Выберите рабочую среду, а не план тестирования, и добавьте не тестовый элемент типа «Записывающий скрипт».

Записывающее устройство JMeter

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

Настройте рекордер следующим образом:

Конфигурация записывающего устройства JMeter для записи на рабочем месте

  • Добавить таймер

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

  • Начать запись

Нажав на кнопку запуска рекордера, вы запустите прокси-сервер JMeter.

Начальная запись записи JMeter

  • Записи должны появиться

Если вы перейдете на веб-страницу, чтобы сделать пример HTTP-запроса, например, перейдите по адресу http://www.oviedin.com с помощью Firefox (после настройки, как описано в первом шаге этой главы), вы увидите, что разные записи отображаются под контроллером записи в плане тестирования.

JMeter записывает контроллер

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

14. Плагины JMeter

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

Есть очень полезные плагины, которые позволяют анализировать результаты с помощью расширенных параметров и анализировать их с помощью графиков и диаграмм, таких как http://jmeter-plugins.org/wiki/GraphsGeneratorListener/ .

Есть также доступные плагины для подключения JMeter к вашему инструменту непрерывной интеграции и запуска планов тестирования JMeter непосредственно из программного обеспечения CI, такого как « https://wiki.jenkins-ci.org/display/JENKINS/Performance+Plugin » для Jenkins.

Как я уже сказал, число плагинов увеличено, и перечислить все из них невозможно, вероятно, стоит проверить, есть ли в Интернете некоторые плагины, прежде чем пытаться реализовать один из них самостоятельно.

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

15. JMeter лучшие практики

Перед тем, как закончится эта статья, мы напишем пару очень полезных трюков и лучших практик:

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

Вы можете сделать это, набрав:

jmeter -n -t test.jmx -l test.jtl.

Предполагается, что тест — это тест, который вы хотите выполнить. Вы должны предоставить полный путь, где хранится ваш тест.

16. Резюме

Ну вот и все.
Мы увидели, как установить JMeter и как настроить его для выполнения различных видов тестов, таких как HTTP-запросы, тесты для баз данных и функциональные тесты для Junit. Есть много других видов тестов и возможностей, предлагаемых с JMeter, которые не описаны в этом руководстве. Цель этого руководства — дать полное описание приложения и показать, как настроить ваши первые планы тестирования.
Мы также объяснили основные части пользовательского интерфейса JMeter и способы его использования, а также элементы плана тестирования, поставляемые с JMeter из коробки.
В последней главе мы упоминали о возможности расширения JMeter с помощью различных плагинов; Это очень интересный момент для опытных пользователей с продвинутыми потребностями.

17. Скачать

18. Ресурсы