Учебники

jMeter — Краткое руководство

jMeter — Обзор

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

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

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

  • Стресс-тест — этот тест является попыткой сломать систему, перегружая ее ресурсы.

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

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

Стресс-тест — этот тест является попыткой сломать систему, перегружая ее ресурсы.

Что такое JMeter?

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

Стефано Маццокки из Apache Software Foundation был первым разработчиком JMeter. Он написал его в первую очередь для тестирования производительности Apache JServ (сейчас он называется проектом Apache Tomcat). Позже Apache переработал JMeter для улучшения графического интерфейса и добавления функциональных возможностей тестирования.

JMeter — это настольное Java-приложение с графическим интерфейсом, использующее графический API Swing. Поэтому он может работать в любой среде / рабочей станции, которая принимает виртуальную машину Java, например — Windows, Linux, Mac и т. Д.

Протоколы, поддерживаемые JMeter:

  • Web — HTTP, HTTPS сайты ‘web 1.0’ web 2.0 (ajax, flex и flex-ws-amf)

  • Веб-сервисы — SOAP / XML-RPC

  • База данных через драйверы JDBC

  • Справочник — LDAP

  • Сервис обмена сообщениями через JMS

  • Сервис — POP3, IMAP, SMTP

  • FTP сервис

Web — HTTP, HTTPS сайты ‘web 1.0’ web 2.0 (ajax, flex и flex-ws-amf)

Веб-сервисы — SOAP / XML-RPC

База данных через драйверы JDBC

Справочник — LDAP

Сервис обмена сообщениями через JMS

Сервис — POP3, IMAP, SMTP

FTP сервис

Особенности JMeter

Ниже приведены некоторые особенности JMeter —

  • Будучи программным обеспечением с открытым исходным кодом, оно свободно доступно.

  • Он имеет простой и понятный графический интерфейс.

  • JMeter может проводить тестирование нагрузки и производительности для различных типов серверов — Web — HTTP, HTTPS, SOAP, База данных через JDBC, LDAP, JMS, Mail — POP3 и т. Д.

  • Это независимый от платформы инструмент. В Linux / Unix JMeter может быть вызван нажатием на скрипт оболочки JMeter. В Windows его можно запустить, запустив файл jmeter.bat.

  • Он имеет полную поддержку Swing и облегченных компонентов (предварительно скомпилированный JAR использует пакеты javax.swing. *).

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

  • Его полная многопоточная структура позволяет одновременную выборку многими потоками и одновременную выборку различных функций отдельными группами потоков.

  • Это очень расширяемый.

  • Его также можно использовать для автоматического и функционального тестирования приложений.

Будучи программным обеспечением с открытым исходным кодом, оно свободно доступно.

Он имеет простой и понятный графический интерфейс.

JMeter может проводить тестирование нагрузки и производительности для различных типов серверов — Web — HTTP, HTTPS, SOAP, База данных через JDBC, LDAP, JMS, Mail — POP3 и т. Д.

Это независимый от платформы инструмент. В Linux / Unix JMeter может быть вызван нажатием на скрипт оболочки JMeter. В Windows его можно запустить, запустив файл jmeter.bat.

Он имеет полную поддержку Swing и облегченных компонентов (предварительно скомпилированный JAR использует пакеты javax.swing. *).

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

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

Это очень расширяемый.

Его также можно использовать для автоматического и функционального тестирования приложений.

Как работает JMeter?

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

Посмотрите на следующий рисунок, который показывает, как работает JMeter —

JMeter Process

jMeter — Окружающая среда

JMeter — это фреймворк для Java, поэтому самое первое требование — установить JDK на вашем компьютере.

Системные требования

JDK 1.6 или выше.
объем памяти Нет минимальных требований.
Дисковое пространство Нет минимальных требований.
Операционная система Нет минимальных требований.

Шаг 1. Проверьте установку Java

Прежде всего, проверьте, установлена ​​ли в вашей системе Java. Откройте консоль и выполните одну из следующих команд Java в зависимости от операционной системы, с которой вы работаете.

Операционные системы задача команда
Windows Открытая командная консоль c: \> Java-версия
Linux Открытый командный терминал $ java-версия
макинтош Открытый терминал машина: ~ Джозеф $ Java-версия

Если в вашей системе установлена ​​Java, вы получите соответствующий вывод в зависимости от ОС, с которой вы работаете.

Операционные системы Выход
Windows

Java-версия «1.7.0_25»

Java (TM) SE Runtime Environment (сборка 1.7.0_25-b15)

Java HotSpot (TM) 64-битная серверная виртуальная машина (сборка 23.25-b01, смешанный режим)

Linux

Java-версия «1.7.0_25»

Java (TM) SE Runtime Environment (сборка 1.7.0_25-b15)

Java HotSpot (TM) 64-битная серверная виртуальная машина (сборка 23.25-b01, смешанный режим)

макинтош

Java-версия «1.7.0_25»

Java (TM) SE Runtime Environment (сборка 1.7.0_25-b15)

Java HotSpot (TM) 64-битная серверная виртуальная машина (сборка 23.25-b01, смешанный режим)

Java-версия «1.7.0_25»

Java (TM) SE Runtime Environment (сборка 1.7.0_25-b15)

Java HotSpot (TM) 64-битная серверная виртуальная машина (сборка 23.25-b01, смешанный режим)

Java-версия «1.7.0_25»

Java (TM) SE Runtime Environment (сборка 1.7.0_25-b15)

Java HotSpot (TM) 64-битная серверная виртуальная машина (сборка 23.25-b01, смешанный режим)

Java-версия «1.7.0_25»

Java (TM) SE Runtime Environment (сборка 1.7.0_25-b15)

Java HotSpot (TM) 64-битная серверная виртуальная машина (сборка 23.25-b01, смешанный режим)

Если у вас не установлена ​​Java, установите Java Software Development Kit (SDK) по адресу www.oracle.com/technetwork/java/javase/downloads/index.html . Мы предполагаем Java 1.7.0_25 в качестве установленной версии для этого урока.

Шаг 2: Установите среду Java

Задайте переменную среды JAVA_HOME, чтобы она указывала на местоположение базовой директории, где на вашем компьютере установлена ​​Java. Например —

Операционные системы Выход
Windows Установите переменную среды JAVA_HOME в C: \ Program Files \ Java \ jdk1.7.0_25
Linux экспорт JAVA_HOME = / usr / local / java-current
макинтош export JAVA_HOME = / Библиотека / Java / Главная

Добавьте расположение компилятора Java в системный путь.

Операционные системы Выход
Windows Добавить строку; C: \ Program Files \ Java \ jdk1.7.0_25 \ bin до конца системной переменной, путь.
Linux экспорт PATH = $ PATH: $ JAVA_HOME / bin /
макинтош не требуется

Проверьте установку Java с помощью команды java -version, как описано выше.

Шаг 3: Загрузите JMeter

Загрузите последнюю версию JMeter с https://jmeter.apache.org/download_jmeter.cgi . Для этого урока мы скачали apache-jmeter-2.9 и скопировали его в папку C: \> JMeter.

Структура каталогов должна выглядеть так, как показано ниже —

  • апаш-JMeter-2,9
  • апач-JMeter-2,9 \ Bin
  • апач-JMeter-2.9 \ Docs
  • апач-JMeter-2.9 \ дополнения
  • апач-JMeter-2,9 \ Lib \
  • апач-JMeter-2,9 \ Lib \ внутр
  • апач-JMeter-2,9 \ Lib \ JUnit
  • апач-JMeter-2.9 \ printable_docs

Вы можете переименовать родительский каталог (то есть apache-jmeter-2.9), если хотите, но не меняйте имена подкаталогов.

Шаг 4: Запустите JMeter

После загрузки JMeter перейдите в каталог bin . В этом случае это /home/manisha/apache-jmeter-2.9/bin . Теперь нажмите на следующее —

Операционные системы Выход
Windows jmeter.bat
Linux jmeter.sh
макинтош jmeter.sh

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

JMeter GUI

Это главная страница и страница инструмента по умолчанию.

jMeter — план тестирования сборки

Что такое план тестирования?

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

Написание плана тестирования

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

Шаг 1: Запустите окно JMeter

Откройте окно JMeter, нажав /home/manisha/apache-jmeter-2.9/bin/jmeter.sh . Окно JMeter будет выглядеть так:

JMeter GUI

Это простое и пустое окно JMeter без каких-либо дополнительных элементов. Он содержит два узла —

  • Узел «План тестирования» — это место, где хранится настоящий план тестирования.

  • Узел Workbench — он просто предоставляет место для временного хранения тестовых элементов, когда они не используются, для целей копирования / вставки. При сохранении плана тестирования элементы Workbench не сохраняются вместе с ним.

Узел «План тестирования» — это место, где хранится настоящий план тестирования.

Узел Workbench — он просто предоставляет место для временного хранения тестовых элементов, когда они не используются, для целей копирования / вставки. При сохранении плана тестирования элементы Workbench не сохраняются вместе с ним.

Шаг 2: Добавить / удалить элементы

Элементы (о которых пойдет речь в следующей главе « Элементы плана тестирования» ) можно добавить в план тестирования, щелкнув правой кнопкой мыши узел «План тестирования» и выбрав новый элемент из списка «Добавить».

Кроме того, вы можете загрузить элемент из файла и добавить его, выбрав «объединить» или «открыть» вариант.

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

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

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

Удалить элемент

Шаг 3: Загрузите и сохраните элементы

Загрузить элемент из файла —

  • Щелкните правой кнопкой мыши на существующем элементе дерева, к которому вы хотите добавить загруженный элемент.
  • Выберите Merge.
  • Выберите файл, в котором вы сохранили элементы.
  • JMeter объединит элементы в дерево.

По умолчанию JMeter не сохраняет элемент, вам нужно явно сохранить его.

Элемент нагрузки

Сохранить элементы дерева —

  • Щелкните правой кнопкой мыши на элементе.
  • Выберите опцию Сохранить выделенное как

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

Шаг 4: Настройка элементов дерева

Любой элемент в плане тестирования может быть настроен с использованием элементов управления, присутствующих в правой боковой рамке JMeter. Эти элементы управления позволяют вам настроить поведение этого конкретного тестового элемента. Например, группу потоков можно настроить для нескольких пользователей, периодов наращивания и т. Д., Как показано ниже —

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

Шаг 5: Сохранение плана тестирования

Вы можете сохранить весь план тестирования, используя команду « Сохранить» или «Сохранить план тестирования как …» в меню «Файл».

Сохранить план тестирования

Шаг 6: Запустите план тестирования

План тестирования можно запустить, нажав кнопку « Пуск» (Control + r) в пункте меню « Выполнить» . Когда JMeter начинает работать, он показывает маленькую зеленую рамку в правом конце секции прямо под строкой меню.

План выполнения теста

Цифры слева от зеленого поля — количество активных потоков / общее количество потоков. Они применяются только к локально выполненному тесту; в них не включены потоки, запущенные на удаленных системах при использовании режима клиент-сервер.

Шаг 7: Остановить план тестирования

Вы можете остановить свой тест двумя способами —

  • Использование Stop (Control + ‘.’). Он останавливает потоки немедленно, если это возможно.

  • Использование выключения (Control + ‘,’). Он просит остановить потоки в конце любой текущей работы.

Использование Stop (Control + ‘.’). Он останавливает потоки немедленно, если это возможно.

Использование выключения (Control + ‘,’). Он просит остановить потоки в конце любой текущей работы.

jMeter — элементы плана тестирования

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

Группа потоков

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

  • Установка количества потоков

  • Установка времени разгона

  • Установка количества тестовых итераций

Установка количества потоков

Установка времени разгона

Установка количества тестовых итераций

Панель управления группой потоков выглядит следующим образом —

Группа потоков

Панель группы потоков содержит следующие компоненты:

  • Действие, которое необходимо предпринять после ошибки Sampler. Если во время выполнения теста возникает какая-либо ошибка, вы можете разрешить проведение теста либо:

    • Перейти к следующему элементу в тесте

    • Остановить поток, чтобы остановить текущий поток.

    • Полностью остановите тест , если вы хотите проверить ошибку до ее продолжения.

  • Количество потоков — имитирует количество пользователей или подключений к вашему серверному приложению.

  • Ramp-Up Period Определяет, сколько времени потребуется JMeter для запуска всех потоков.

  • Loop Count — определяет количество раз, которое нужно выполнить тест.

  • Флажок планировщика — После выбора раздел «Конфигурация планировщика» отображается в нижней части панели управления.

  • Конфигурация планировщика — вы можете настроить время начала и окончания выполнения теста.

Действие, которое необходимо предпринять после ошибки Sampler. Если во время выполнения теста возникает какая-либо ошибка, вы можете разрешить проведение теста либо:

Перейти к следующему элементу в тесте

Остановить поток, чтобы остановить текущий поток.

Полностью остановите тест , если вы хотите проверить ошибку до ее продолжения.

Количество потоков — имитирует количество пользователей или подключений к вашему серверному приложению.

Ramp-Up Period Определяет, сколько времени потребуется JMeter для запуска всех потоков.

Loop Count — определяет количество раз, которое нужно выполнить тест.

Флажок планировщика — После выбора раздел «Конфигурация планировщика» отображается в нижней части панели управления.

Конфигурация планировщика — вы можете настроить время начала и окончания выполнения теста.

Контроллеры

JMeter имеет два типа контроллеров — сэмплеры и логические контроллеры .

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

Сэмплеры позволяют JMeter отправлять определенные типы запросов на сервер. Они имитируют запрос пользователя на страницу с целевого сервера. Например, вы можете добавить сэмплер HTTP-запроса, если вам нужно выполнить POST, GET или DELETE для службы HTTP.

Некоторые полезные сэмплеры —

  • HTTP-запрос
  • FTP-запрос
  • Запрос JDBC
  • Java-запрос
  • Запрос SOAP / XML
  • RPC-запросы

На следующем снимке экрана показана панель управления сэмплером HTTP-запросов.

Панель управления сэмплером

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

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

На следующем снимке экрана показана панель управления Loop Controller —

Панель логического контроллера

Следующий список содержит все логические контроллеры, которые предоставляет JMeter:

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

Тестовые фрагменты

Тестовый фрагмент — это особый тип элемента, размещенный на том же уровне, что и элемент группы потоков. Он отличается от группы потоков тем, что он не выполняется, если на него не ссылается ни контроллер модуля, ни контроллер Include_Controller. Этот элемент предназначен исключительно для повторного использования кода в планах тестирования.

Слушатели

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

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

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

Таймеры

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

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

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

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

Панель с постоянным таймером

Утверждения

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

Следующий список состоит из всех утверждений, которые предоставляет JMeter:

  • Beanshell Утверждение
  • Утверждение BSF
  • Сравнить утверждение
  • Утверждение JSR223
  • Подтверждение ответа
  • Подтверждение продолжительности
  • Утверждение размера
  • Утверждение XML
  • BeanShell Assertion
  • MD5Hex Утверждение
  • Утверждение HTML
  • Утверждение XPath
  • Утверждение схемы XML

На следующем снимке экрана показана панель управления подтверждением ответа —

Панель подтверждения ответа

Элементы конфигурации

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

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

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

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

Элементы препроцессора

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

Следующий список состоит из всех элементов препроцессора, которые предоставляет JMeter:

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

Элементы постпроцессора

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

Следующий список содержит все элементы постпроцессора, которые предоставляет JMeter:

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

Порядок выполнения тестовых элементов

Ниже приведен порядок выполнения элементов плана тестирования.

  • Элементы конфигурации
  • Pre-процессоры
  • Таймеры
  • пробоотборник
  • Постпроцессоры (если SampleResult не имеет значения null)
  • Утверждения (если SampleResult не имеет значения null)
  • Слушатели (если SampleResult не имеет значения null)

jMeter — план веб-тестирования

Давайте создадим простой план тестирования, который проверяет веб-страницу. Мы пишем план тестирования в Apache JMeter, чтобы мы могли проверить производительность веб-страницы, отображаемой по URL — www.tutorialspoint.com .

Запустите JMeter

Откройте окно JMeter, нажав на /home/manisha/apache-jmeter-2.9/bin/jmeter.sh . Окно JMeter выглядит так:

JMeter GUI

Переименовать план тестирования

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

Образец теста

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

Теперь мы добавляем наш первый элемент в окно. Мы добавляем одну группу потоков, которая является заполнителем для всех других элементов, таких как Samplers, Controllers и Listeners. Нам нужен один, чтобы мы могли настроить количество пользователей для моделирования.

В JMeter все элементы узла добавляются с помощью контекстного меню.

  • Щелкните правой кнопкой мыши элемент, в который вы хотите добавить узел дочернего элемента.

  • Выберите подходящий вариант для добавления.

  • Щелкните правой кнопкой мыши образец теста (наш план тестирования) → Добавить → Темы (пользователи) → Группа потоков. Таким образом, группа потоков добавляется в узел «План тестирования» («Образец теста»).

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

Выберите подходящий вариант для добавления.

Щелкните правой кнопкой мыши образец теста (наш план тестирования) → Добавить → Темы (пользователи) → Группа потоков. Таким образом, группа потоков добавляется в узел «План тестирования» («Образец теста»).

Добавлена ​​группа тем

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

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

Пользователь группы потоков

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

Нам нужно добавить один сэмплер в нашу группу потоков (пользователи). Как и ранее для добавления группы потоков, на этот раз мы откроем контекстное меню узла «Группа потоков (пользователи)», щелкнув правой кнопкой мыши, и добавим сэмплер HTTP-запросов, выбрав «Добавить» → «Сэмплер» → «Запрос HTTP».

Пустой пробоотборник

Это добавит один пустой HTTP Request Sampler под узлом Thread Group (Users). Давайте настроим этот элемент узла —

Сэмплер с данными

  • Имя — мы изменим имя, чтобы отразить действие, которого мы хотим достичь. Мы назовем его как Посетить домашнюю страницу TutorialsPoint

  • Имя сервера или IP — Здесь мы должны ввести имя веб-сервера. В нашем случае это www.tutorialspoint.com . (http: // часть не написана, это только имя сервера или его IP)

  • Протокол — мы оставим это поле пустым, что означает, что мы хотим использовать HTTP в качестве протокола.

  • Путь — Мы введем путь как / (косая черта). Это означает, что мы хотим корневую страницу сервера.

Имя — мы изменим имя, чтобы отразить действие, которого мы хотим достичь. Мы назовем его как Посетить домашнюю страницу TutorialsPoint

Имя сервера или IP — Здесь мы должны ввести имя веб-сервера. В нашем случае это www.tutorialspoint.com . (http: // часть не написана, это только имя сервера или его IP)

Протокол — мы оставим это поле пустым, что означает, что мы хотим использовать HTTP в качестве протокола.

Путь — Мы введем путь как / (косая черта). Это означает, что мы хотим корневую страницу сервера.

Добавить слушателя

Теперь мы добавим слушателя. Давайте добавим Прослушиватель дерева просмотра результатов под узлом группы потоков (пользователя). Это гарантирует, что результаты сэмплера будут доступны для просмотра в этом элементе узла Listener.

Добавить слушателя —

  • Откройте контекстное меню

  • Щелкните правой кнопкой мыши группу потоков (пользователи).

  • Выберите Добавить → Прослушиватель → Просмотр дерева результатов.

Откройте контекстное меню

Щелкните правой кнопкой мыши группу потоков (пользователи).

Выберите Добавить → Прослушиватель → Просмотр дерева результатов.

слушатель

Запустите план тестирования

Теперь со всеми настройками, давайте выполним план тестирования. При настройке группы потоков (пользователи) мы сохраняем все значения по умолчанию. Это означает, что JMeter выполнит семплер только один раз. Это похоже на одного пользователя, только один раз.

Это похоже на посещение пользователем веб-страницы через браузер с помощью сэмплера JMeter. Чтобы выполнить план тестирования, выберите Run из меню и выберите Start start.

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

Сохранить план тестирования

Посмотреть вывод

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

Посмотреть результат

Детали вышеупомянутого результата —

  • Зеленый цвет на фоне названия. Посетить домашнюю страницу TutorialsPoint означает успех.

  • JMeter хранит все заголовки и ответы, отправленные веб-сервером, и готов показать нам результаты разными способами.

  • Первая вкладка — Результаты сэмплера. Он показывает данные JMeter, а также данные, возвращаемые веб-сервером.

  • Вторая вкладка — Запрос, которая показывает все данные, отправленные на веб-сервер как часть запроса.

Зеленый цвет на фоне названия. Посетить домашнюю страницу TutorialsPoint означает успех.

JMeter хранит все заголовки и ответы, отправленные веб-сервером, и готов показать нам результаты разными способами.

Первая вкладка — Результаты сэмплера. Он показывает данные JMeter, а также данные, возвращаемые веб-сервером.

Вторая вкладка — Запрос, которая показывает все данные, отправленные на веб-сервер как часть запроса.

Вкладка «Запрос»

Последняя вкладка — Данные ответа. На этой вкладке слушатель показывает данные, полученные с сервера, в текстовом формате.

Вкладка «Ответ»

Это простой план тестирования, который выполняет только один запрос. Но настоящая сила JMeter в том, что он отправляет один и тот же запрос, как если бы его отправляли многие пользователи. Чтобы протестировать веб-серверы с несколькими пользователями, нам нужно изменить настройки группы потоков (пользователей).

jMeter — план тестирования базы данных

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

После установки MYSQL выполните следующие действия для настройки базы данных:

  • Создайте базу данных с именем «учебник».

  • Создать таблицу tutorials_tbl .

  • Вставьте записи в tutorials_tbl, как показано ниже —

Создайте базу данных с именем «учебник».

Создать таблицу tutorials_tbl .

Вставьте записи в tutorials_tbl, как показано ниже —

mysql> use TUTORIALS;
Database changed
mysql> INSERT INTO tutorials_tbl 
   ->(tutorial_title, tutorial_author, submission_date)
   ->VALUES
   ->("Learn PHP", "John Poul", NOW());
  
Query OK, 1 row affected (0.01 sec)
mysql> INSERT INTO tutorials_tbl
   ->(tutorial_title, tutorial_author, submission_date)
   ->VALUES
   ->("Learn MySQL", "Abdul S", NOW());
 
Query OK, 1 row affected (0.01 sec)
mysql> INSERT INTO tutorials_tbl
   ->(tutorial_title, tutorial_author, submission_date)
   ->VALUES
   ->("JAVA Tutorial", "Sanjay", '2007-05-06');

Query OK, 1 row affected (0.01 sec)
mysql>
  • Скопируйте соответствующий драйвер JDBC в /home/manisha/apache-jmeter-2.9/lib .

Скопируйте соответствующий драйвер JDBC в /home/manisha/apache-jmeter-2.9/lib .

Создать план тестирования JMeter

Давайте запустим JMeter с /home/manisha/apache-jmeter-2.9/bin/jmeter.sh .

Добавить пользователей

Чтобы создать группу потоков,

  • Щелкните правой кнопкой мыши на плане тестирования.

  • Выберите Добавить → Темы (Пользователи) → Группа тем.

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

  • Переименуйте эту группу потоков в Пользователи JDBC .

Щелкните правой кнопкой мыши на плане тестирования.

Выберите Добавить → Темы (Пользователи) → Группа тем.

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

Переименуйте эту группу потоков в Пользователи JDBC .

Добавлена ​​группа тем

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

Добавление запросов JDBC

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

  • Щелкните правой кнопкой мыши элемент JDBC Users.

  • Выберите Добавить → Элемент конфигурации → Конфигурация соединения JDBC .

  • Установите следующие поля (мы используем базу данных MySQL, которая называется tutorial) —

    • Имя переменной привязано к пулу. Это должно идентифицировать конфигурацию однозначно. Он используется JDBC Sampler для определения используемой конфигурации. Мы назвали это тестом .

    • URL базы данных — jdbc: mysql: // localhost: 3306 / tutorial.

    • Класс драйвера JDBC: com.mysql.jdbc.Driver.

    • Имя пользователя: root.

    • Пароль: пароль для root.

Щелкните правой кнопкой мыши элемент JDBC Users.

Выберите Добавить → Элемент конфигурации → Конфигурация соединения JDBC .

Установите следующие поля (мы используем базу данных MySQL, которая называется tutorial) —

Имя переменной привязано к пулу. Это должно идентифицировать конфигурацию однозначно. Он используется JDBC Sampler для определения используемой конфигурации. Мы назвали это тестом .

URL базы данных — jdbc: mysql: // localhost: 3306 / tutorial.

Класс драйвера JDBC: com.mysql.jdbc.Driver.

Имя пользователя: root.

Пароль: пароль для root.

Другие поля на экране остаются по умолчанию, как показано ниже —

Пул конфигурации JDBC

Теперь добавьте запрос JDBC, который ссылается на пул конфигурации JDBC, определенный выше. Выберите элемент JDBC Users.

  • Щелкните правой кнопкой мыши, чтобы открыть меню «Добавить»

  • Выберите Добавить → Выборка → Запрос JDBC.

  • Выберите этот новый элемент, чтобы просмотреть его панель управления.

  • Отредактируйте свойства как показано ниже —

    • Имя переменной привязано к пулу. Это должно однозначно идентифицировать конфигурацию. Он используется JDBC Sampler для определения используемой конфигурации. Названо это как тест .

    • Имя — Учись.

    • Введите имя пула — тест (так же, как в элементе конфигурации).

    • Тип запроса — Выберите оператор.

    • Введите поле Строка запроса SQL.

Щелкните правой кнопкой мыши, чтобы открыть меню «Добавить»

Выберите Добавить → Выборка → Запрос JDBC.

Выберите этот новый элемент, чтобы просмотреть его панель управления.

Отредактируйте свойства как показано ниже —

Имя переменной привязано к пулу. Это должно однозначно идентифицировать конфигурацию. Он используется JDBC Sampler для определения используемой конфигурации. Названо это как тест .

Имя — Учись.

Введите имя пула — тест (так же, как в элементе конфигурации).

Тип запроса — Выберите оператор.

Введите поле Строка запроса SQL.

Запрос JDBC

Создать слушателя

Теперь добавьте элемент Listener. Этот элемент отвечает за хранение всех результатов ваших запросов JDBC в файле и представление визуальной модели данных.

  • Выберите элемент JDBC Users

  • Добавить прослушиватель дерева результатов ( Добавить → Прослушиватель → Просмотреть дерево результатов ).

Выберите элемент JDBC Users

Добавить прослушиватель дерева результатов ( Добавить → Прослушиватель → Просмотреть дерево результатов ).

Тестовый слушатель JDBC

Сохранить и выполнить план тестирования

Теперь сохраните приведенный выше план тестирования как db_test.jmx . Выполните этот план тестирования, используя Run → Start .

Проверьте вывод

Тестовый вывод JDBC1

Тестовый вывод JDBC2

Тестовый вывод JDBC3

На последнем изображении видно, что выбраны две записи.

jMeter — план тестирования FTP

В этой главе мы увидим, как протестировать FTP-сайт с помощью JMeter. Давайте создадим план тестирования для тестирования FTP-сайта.

Переименовать план тестирования

  • Откройте окно JMeter, нажав /home/manisha/apache-jmeter-2.9/bin/jmeter.sh

  • Нажмите на узел плана тестирования.

  • Переименуйте этот узел плана тестирования в TestFTPSite.

Откройте окно JMeter, нажав /home/manisha/apache-jmeter-2.9/bin/jmeter.sh

Нажмите на узел плана тестирования.

Переименуйте этот узел плана тестирования в TestFTPSite.

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

Добавьте одну группу потоков, которая является заполнителем для всех других элементов, таких как Samplers, Controllers и Listeners.

  • Щелкните правой кнопкой мыши на TestFTPSite (наш план тестирования)

  • Выберите Добавить → Темы (Пользователи) → Группа тем. Группа потоков будет добавлена ​​в узел Test Plan (TestFTPSite).

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

    • Имя — FTPusers

    • Количество потоков (пользователей) — 4

    • Ramp-Up Period — оставьте значение по умолчанию 0 секунд.

    • Количество циклов — 1

Щелкните правой кнопкой мыши на TestFTPSite (наш план тестирования)

Выберите Добавить → Темы (Пользователи) → Группа тем. Группа потоков будет добавлена ​​в узел Test Plan (TestFTPSite).

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

Имя — FTPusers

Количество потоков (пользователей) — 4

Ramp-Up Period — оставьте значение по умолчанию 0 секунд.

Количество циклов — 1

Тестовые пользователи FTP

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

Теперь, когда мы определили наших пользователей, пришло время определить задачи, которые они будут выполнять. Добавьте элементы FTP-запроса. Мы добавляем два элемента FTP-запроса, один из которых извлекает файл, а другой — помещает файл на FTP-сайт.

  • Выберите элемент FTP-пользователей.

  • Щелкните правой кнопкой мыши, чтобы открыть меню «Добавить».

  • Выберите Добавить → Выборка → Запрос FTP.

  • Выберите элемент FTP-запроса в дереве.

  • Отредактируйте следующие свойства, как показано ниже —

Выберите элемент FTP-пользователей.

Щелкните правой кнопкой мыши, чтобы открыть меню «Добавить».

Выберите Добавить → Выборка → Запрос FTP.

Выберите элемент FTP-запроса в дереве.

Отредактируйте следующие свойства, как показано ниже —

FTP запрос Получить

Следующие детали вводятся в этот элемент —

  • Имя — FTP Запрос Получить

  • Имя сервера или IP — 184.168.74.29

  • Удаленный файл — /home/manisha/sample_ftp.txt

  • Локальный файл — sample_ftp.txt

  • Выберите получить (RETR)

  • Имя пользователя — Маниша

  • Пароль — manisha123

Имя — FTP Запрос Получить

Имя сервера или IP — 184.168.74.29

Удаленный файл — /home/manisha/sample_ftp.txt

Локальный файл — sample_ftp.txt

Выберите получить (RETR)

Имя пользователя — Маниша

Пароль — manisha123

Теперь добавьте еще один FTP-запрос, как указано выше, и измените свойства, как показано на следующем снимке экрана.

FTP запрос поставлен

Следующие детали вводятся в этот элемент —

  • Имя — FTP запрос поставлен

  • Имя сервера или IP — 184.168.74.29

  • Удаленный файл — /home/manisha/examplefile.txt

  • Локальный файл — /home/manisha/work/examplefile.txt

  • Выберите поставить (STOR)

  • Имя пользователя — Маниша

  • Пароль — manisha123

Имя — FTP запрос поставлен

Имя сервера или IP — 184.168.74.29

Удаленный файл — /home/manisha/examplefile.txt

Локальный файл — /home/manisha/work/examplefile.txt

Выберите поставить (STOR)

Имя пользователя — Маниша

Пароль — manisha123

Добавить слушателя

Последний элемент, который вам нужно добавить в свой план тестирования, — это слушатель. Этот элемент отвечает за хранение всех результатов ваших запросов FTP в файле и представление визуальной модели данных.

  • Выберите элемент FTP-пользователей.

  • Добавьте прослушиватель «Просмотреть дерево результатов», выбрав «Добавить»> «Прослушиватель»> «Просмотреть дерево результатов».

Выберите элемент FTP-пользователей.

Добавьте прослушиватель «Просмотреть дерево результатов», выбрав «Добавить»> «Прослушиватель»> «Просмотреть дерево результатов».

FTP Test Listener

Запустите план тестирования

Теперь сохраните вышеуказанный план тестирования как ftpsite_test.jmx . Выполните этот план тестирования, используя Run → Start .

Посмотреть вывод

Следующий вывод можно увидеть в слушателе.

FTP Get Result1

FTP Test Result2

FTP Put Result

FTP получить результат

Вы можете видеть, что четыре запроса сделаны для каждого запроса FTP, и тест прошел успешно. Полученный файл для запроса GET хранится в папке / bin. В нашем случае это /home/manisha/apache-jmeter-2.9/bin/ . Для запроса PUT файл загружается по пути / home / manisha / .

jMeter — план тестирования веб-сервиса

В этой главе мы узнаем, как создать план тестирования для тестирования WebService. Для нашего теста мы создали простой проект веб-сервиса и развернули его на сервере Tomcat локально.

Создать проект веб-сервиса

Для создания проекта веб-сервиса мы использовали Eclipse IDE. Сначала напишите интерфейс конечной точки службы HelloWorld в пакете com.tutorialspoint.ws . Содержимое HelloWorld.java выглядит следующим образом:

package com.tutorialspoint.ws;

import javax.jws.WebMethod;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;
import javax.jws.soap.SOAPBinding.Style;

//Service Endpoint Interface
@WebService
@SOAPBinding(style = Style.RPC)

public interface HelloWorld {
   @WebMethod String getHelloWorldMessage(String string);
}

Этот сервис имеет метод getHelloWorldMessage, который принимает параметр String.

Затем создайте класс реализации HelloWorldImpl.java в пакете com.tutorialspoint.ws .

package com.tutorialspoint.ws;

import javax.jws.WebService;

@WebService(endpointInterface="com.tutorialspoint.ws.HelloWorld")
public class HelloWorldImpl  implements HelloWorld  {
   @Override
   public String getHelloWorldMessage(String myName) {
      return("Hello "+myName+" to JAX WS world");
   }
}

Давайте теперь опубликуем этот веб-сервис локально, создав издателя Endpoint и выставив сервис на сервере.

Метод публикации принимает два параметра —

  • Строка URL конечной точки.

  • Объект реализатора, в данном случае класс реализации HelloWorld, который предоставляется в качестве веб-службы в конечной точке, идентифицируемой URL-адресом, указанным в приведенном выше параметре.

Строка URL конечной точки.

Объект реализатора, в данном случае класс реализации HelloWorld, который предоставляется в качестве веб-службы в конечной точке, идентифицируемой URL-адресом, указанным в приведенном выше параметре.

Содержимое HelloWorldPublisher.java выглядит следующим образом:

package com.tutorialspoint.endpoint;

import javax.xml.ws.Endpoint;
import com.tutorialspoint.ws.HelloWorldImpl;

public class HelloWorldPublisher {
   public static void main(String[] args) {
      Endpoint.publish("http://localhost:9000/ws/hello", new HelloWorldImpl());
   }
}

Измените содержимое web.xml, как показано ниже —

<?xml version = "1.0" encoding = "UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, 
   Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/j2ee/dtds/web-app_2_3.dtd">

<web-app>
   <listener>
      <listener-class>
         com.sun.xml.ws.transport.http.servlet.WSServletContextListener
      </listener-class>
   </listener>
	
   <servlet>
      <servlet-name>hello</servlet-name>
      <servlet-class>com.sun.xml.ws.transport.http.servlet.WSServlet</servlet-class>
      <load-on-startup>1</load-on-startup>
   </servlet>
	
   <servlet-mapping>
      <servlet-name>hello</servlet-name>
      <url-pattern>/hello</url-pattern>
   </servlet-mapping>
	
   <session-config>
      <session-timeout>120</session-timeout>
   </session-config>
	
</web-app>

Чтобы развернуть это приложение как веб-сервис , нам понадобится другой файл конфигурации sun-jaxws.xml . Содержимое этого файла выглядит следующим образом —

<?xml version = "1.0" encoding = "UTF-8"?>
<endpoints
   xmlns = "http://java.sun.com/xml/ns/jax-ws/ri/runtime"
   version = "2.0">
   
   <endpoint name = "HelloWorld" 
      implementation = "com.tutorialspoint.ws.HelloWorldImpl" 
      url-pattern = "/hello"/>
</endpoints>

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

Структура WebService Dir

  • Теперь создайте WAR-файл этого приложения.

  • Выберите проект → щелкните правой кнопкой мыши → Экспорт → WAR-файл.

  • Сохраните его как файл hello.war в папке webapps сервера Tomcat.

  • Теперь запустите сервер Tomcat.

  • После запуска сервера вы сможете получить доступ к веб-сервису с помощью URL — http: // localhost: 8080 / hello / hello

Теперь создайте WAR-файл этого приложения.

Выберите проект → щелкните правой кнопкой мыши → Экспорт → WAR-файл.

Сохраните его как файл hello.war в папке webapps сервера Tomcat.

Теперь запустите сервер Tomcat.

После запуска сервера вы сможете получить доступ к веб-сервису с помощью URL — http: // localhost: 8080 / hello / hello

Создать план тестирования JMeter

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

Переименовать план тестирования

  • Откройте окно JMeter, нажав /home/manisha/apache-jmeter2.9/bin/jmeter.sh.

  • Щелкните по узлу «План тестирования».

  • Переименуйте этот узел плана тестирования в WebserviceTest.

Откройте окно JMeter, нажав /home/manisha/apache-jmeter2.9/bin/jmeter.sh.

Щелкните по узлу «План тестирования».

Переименуйте этот узел плана тестирования в WebserviceTest.

План тестирования WS

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

Добавьте одну группу потоков, которая является заполнителем для всех других элементов, таких как Samplers, Controllers и Listeners.

  • Щелкните правой кнопкой мыши по WebserviceTest (наш план тестирования) → Добавить → Темы (пользователи) → Группа потоков. Группа потоков будет добавлена ​​в узел плана тестирования (WebserviceTest).

  • Далее, давайте изменим свойства группы потоков по умолчанию, чтобы они соответствовали нашему тестированию. Следующие свойства изменены —

    • Имя — пользователь веб-сервиса

    • Количество потоков (пользователей) — 2

    • Ramp-Up Period — оставьте значение по умолчанию 0 секунд.

    • Количество циклов — 2

Щелкните правой кнопкой мыши по WebserviceTest (наш план тестирования) → Добавить → Темы (пользователи) → Группа потоков. Группа потоков будет добавлена ​​в узел плана тестирования (WebserviceTest).

Далее, давайте изменим свойства группы потоков по умолчанию, чтобы они соответствовали нашему тестированию. Следующие свойства изменены —

Имя — пользователь веб-сервиса

Количество потоков (пользователей) — 2

Ramp-Up Period — оставьте значение по умолчанию 0 секунд.

Количество циклов — 2

Тестовые пользователи WS

Добавить сэмплер — запрос SOAP / XML-RPC

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

Мы добавим элемент SOAP / XML-RPC Request —

  • Щелкните правой кнопкой мыши, чтобы открыть меню «Добавить».

  • Выберите Добавить → Выборка → SOAP / XML-RPC Запрос.

  • Выберите элемент SOAP / XML-RPC Request в дереве

  • Отредактируйте следующие свойства как на изображении ниже —

  • Следующие детали вводятся в этот элемент —

    • Имя — SOAP / XML-RPC-запрос

    • URL — http: // localhost: 8080 / hello / hello? Wsdl

    • Данные Soap / XML-RPC — введите содержимое ниже

Щелкните правой кнопкой мыши, чтобы открыть меню «Добавить».

Выберите Добавить → Выборка → SOAP / XML-RPC Запрос.

Выберите элемент SOAP / XML-RPC Request в дереве

Отредактируйте следующие свойства как на изображении ниже —

Следующие детали вводятся в этот элемент —

Имя — SOAP / XML-RPC-запрос

URL — http: // localhost: 8080 / hello / hello? Wsdl

Данные Soap / XML-RPC — введите содержимое ниже

<soapenv:Envelope xmlns:soapenv = "http://schemas.xmlsoap.org/soap/envelope/" 
   xmlns:web = "http://ws.tutorialspoint.com/">
   <soapenv:Header/>
	
   <soapenv:Body>
      <web:getHelloWorldMessage>
         <arg0>Manisha</arg0>
      </web:getHelloWorldMessage>
   </soapenv:Body>
   
</soapenv:Envelope>

WS Test запрос

Добавить слушателя

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

  • Выберите пользовательский элемент веб-сервиса.

  • Добавьте прослушиватель Просмотр дерева результатов, выбрав Добавить → Прослушиватель → Просмотр дерева результатов.

Выберите пользовательский элемент веб-сервиса.

Добавьте прослушиватель Просмотр дерева результатов, выбрав Добавить → Прослушиватель → Просмотр дерева результатов.

WS Test запрос

Запустите план тестирования

Теперь сохраните приведенный выше план тестирования как test_webservice.jmx . Выполните этот план тестирования, используя Run → Start.

Посмотреть вывод

Следующий вывод можно увидеть в слушателе.

WS Образец Результат

WS Result Request

Данные отклика WS

На последнем изображении вы можете увидеть ответное сообщение «Hello Manisha to JAX WS world».

jMeter — план тестирования JMS

В этой главе мы узнаем, как написать простой план тестирования для тестирования Java Messaging Service (JMS). JMS поддерживает два типа сообщений:

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

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

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

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

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

  • Мы используем Apache ActiveMQ в этом примере. Существуют различные серверы JMS, такие как IBM WebSphere MQ (ранее MQSeries), Tibco и т. Д. Загрузите его из двоичных файлов с веб-сайта Apache ActiveMQ.

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

Мы используем Apache ActiveMQ в этом примере. Существуют различные серверы JMS, такие как IBM WebSphere MQ (ранее MQSeries), Tibco и т. Д. Загрузите его из двоичных файлов с веб-сайта Apache ActiveMQ.

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

.\bin\activemq  start

Вы можете проверить, запущен ли сервер ActiveMQ, посетив интерфейс администратора по следующему адресу http: // localhost: 8161 / admin / . Если он запрашивает аутентификацию, введите ID пользователя и пароль от имени администратора . Экран похож, как показано ниже —

ActiveMQ Server

  • Теперь скопируйте activemq-all-xxxjar (XXX в зависимости от версии) из разархивированного каталога ActiveMQ в /home/manisha/apache-jmeter-2.9/lib.

Теперь скопируйте activemq-all-xxxjar (XXX в зависимости от версии) из разархивированного каталога ActiveMQ в /home/manisha/apache-jmeter-2.9/lib.

С помощью описанной выше настройки давайте составим план тестирования для —

План тестирования JMS «точка-точка»

План тестирования темы JMS

jMeter — План тестирования монитора

В этой главе мы обсудим, как создать план тестирования с использованием JMeter для мониторинга веб-серверов. Испытания монитора следующие:

  • Мониторы полезны для стресс-тестирования и управления системой.

  • Используемый со стресс-тестированием, монитор предоставляет дополнительную информацию о производительности сервера.

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

  • Как инструмент системного администрирования, монитор обеспечивает простой способ мониторинга нескольких серверов с одной консоли.

Мониторы полезны для стресс-тестирования и управления системой.

Используемый со стресс-тестированием, монитор предоставляет дополнительную информацию о производительности сервера.

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

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

Нам нужен Tomcat 5 или выше для мониторинга. Для нашего теста мы будем следить за сервером Tomcat 7.0.42. Вы можете протестировать любой контейнер сервлета, который поддерживает Java Management Extension (JMX). Давайте напишем контрольный пример для мониторинга сервера Tomcat. Давайте сначала настроим наш сервер Tomcat.

Настройка сервера Tomcat

Начнем с открытия статуса сервиса Tomcat. Для этого отредактируйте файл конфигурации для пользователей: <TOMCAT_HOME> /conf/tomcat-users.xml . Этот файл содержит раздел tomcat-users (с комментариями), как показано ниже:

<tomcat-users>

<!--
   <role rolename = "tomcat"/>
   <role rolename = "role1"/>
   <user username = "tomcat" password = "tomcat" roles = "tomcat"/>
   <user username = "both" password = "tomcat" roles = "tomcat,role1"/>
   <user username = "role1" password = "tomcat" roles = "role1"/>
-->

</tomcat-users>

Нам нужно изменить этот раздел, чтобы добавить роли администратора, manager, manager-gui и назначить пользователю «admin». Пересмотренный файл выглядит следующим образом —

<tomcat-users>

   <role rolename = "manager-gui"/>
   <role rolename = "manager-script"/>
   <role rolename = "manager-jmx"/>
   <role rolename = "manager-status"/>
   <user username = "admin" password = "admin" roles = "manager-gui,manager-script,manager-jmx,manager-status"/>

</tomcat-users>

Теперь запустите сервер tomcat <TOMCAT_HOME> /bin/startup.sh для Linux и <TOMCAT_HOME> /bin/startup.bat для Windows. После запуска проверьте, работает ли Tomcat, введя следующую ссылку в вашем браузере:

http://localhost:8080/manager/status?XML=true

В браузере появится окно аутентификации. Введите логин и пароль tomcat (в нашем случае это admin). Затем браузер отображает состояние выполнения Tomcat, как показано ниже:

Статус менеджера Tomcat

На приведенном выше снимке экрана мы можем отметить несколько вещей:

  • Обратите внимание, что в URL-адресе XML = true (обратите внимание на чувствительность к регистру) позволяет четко отображать супервизор Tomcat, необходимый для работы JMeter.

  • Также обратите внимание, что по умолчанию есть два разъема. Соединитель AJP, используемый в общем, соединен с передним модулем Apache HTTPD mod_jk и соединителем HTTP, который обычно используется для прямого доступа к Tomcat через порт 8080.

Обратите внимание, что в URL-адресе XML = true (обратите внимание на чувствительность к регистру) позволяет четко отображать супервизор Tomcat, необходимый для работы JMeter.

Также обратите внимание, что по умолчанию есть два разъема. Соединитель AJP, используемый в общем, соединен с передним модулем Apache HTTPD mod_jk и соединителем HTTP, который обычно используется для прямого доступа к Tomcat через порт 8080.

Написать план тестирования JMeter

Давайте посмотрим на сервер Tomcat, написав план тестирования —

Переименовать план тестирования

  • Откройте окно JMeter, нажав /home/manisha/apache-jmeter2.9/bin/jmeter.sh.

  • Щелкните по узлу «План тестирования».

  • Добавьте группу потоков, как описано в следующем шаге.

Откройте окно JMeter, нажав /home/manisha/apache-jmeter2.9/bin/jmeter.sh.

Щелкните по узлу «План тестирования».

Добавьте группу потоков, как описано в следующем шаге.

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

  • Щелкните правой кнопкой мыши План тестирования → Добавить → Темы (пользователи) → Группа потоков . Группа потоков будет добавлена ​​в узел плана тестирования.

  • Измените счетчик циклов навсегда (или какое-то большое число), чтобы генерировалось достаточное количество выборок.

Щелкните правой кнопкой мыши План тестирования → Добавить → Темы (пользователи) → Группа потоков . Группа потоков будет добавлена ​​в узел плана тестирования.

Измените счетчик циклов навсегда (или какое-то большое число), чтобы генерировалось достаточное количество выборок.

Мониторинг тестовых пользователей

Диспетчер авторизации HTTP

  • Добавьте диспетчер авторизации HTTP к элементу группы потоков, выбрав «Добавить» → «Элемент конфигурации» → «Диспетчер авторизации HTTP». Этот элемент управляет проверкой подлинности, запрашиваемой браузером для просмотра состояния сервера Tomcat.

  • Выберите диспетчер авторизации HTTP.

  • Отредактируйте следующие детали —

    • Имя пользователя — admin (в зависимости от конфигурации в файле tomcat-users.xml)

    • Пароль — admin (в зависимости от конфигурации в файле tomcatusers.xml)

    • Остальные поля оставлены пустыми.

Добавьте диспетчер авторизации HTTP к элементу группы потоков, выбрав «Добавить» → «Элемент конфигурации» → «Диспетчер авторизации HTTP». Этот элемент управляет проверкой подлинности, запрашиваемой браузером для просмотра состояния сервера Tomcat.

Выберите диспетчер авторизации HTTP.

Отредактируйте следующие детали —

Имя пользователя — admin (в зависимости от конфигурации в файле tomcat-users.xml)

Пароль — admin (в зависимости от конфигурации в файле tomcatusers.xml)

Остальные поля оставлены пустыми.

Диспетчер авторизации HTTP

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

Теперь, когда мы определили наших пользователей, пришло время определить задачи, которые они будут выполнять. Добавляем элемент HTTP Request.

  • Щелкните правой кнопкой мыши, чтобы открыть меню «Добавить».

  • Выберите Добавить → Выборка → Запрос HTTP.

  • Затем выберите элемент HTTP Request в дереве.

  • Отредактируйте следующие свойства как на изображении ниже —

  • Следующие детали вводятся в этот элемент —

    • Имя — Состояние сервера

    • Имя сервера или IP — localhost

    • Порт — 8080

    • Путь — / менеджер / статус

    • Параметры — добавьте параметр запроса с именем «XML» в верхнем регистре. Дайте ему значение «true» в нижнем регистре.

    • Дополнительные задачи — установите флажок «Использовать как монитор» в нижней части сэмплера.

Щелкните правой кнопкой мыши, чтобы открыть меню «Добавить».

Выберите Добавить → Выборка → Запрос HTTP.

Затем выберите элемент HTTP Request в дереве.

Отредактируйте следующие свойства как на изображении ниже —

Следующие детали вводятся в этот элемент —

Имя — Состояние сервера

Имя сервера или IP — localhost

Порт — 8080

Путь — / менеджер / статус

Параметры — добавьте параметр запроса с именем «XML» в верхнем регистре. Дайте ему значение «true» в нижнем регистре.

Дополнительные задачи — установите флажок «Использовать как монитор» в нижней части сэмплера.

Монитор Test Sampler

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

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

Введите 5000 миллисекунд в поле « Задержка потока». Как правило, использование интервалов менее 5 секунд может увеличить нагрузку на ваш сервер. Узнайте, что является приемлемым интервалом, прежде чем развертывать монитор в производственной среде.

Постоянный таймер монитора

Добавить слушателя

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

  • Выберите элемент группы потоков.

  • Добавить прослушиватель Simple Data Writer Добавить → Прослушиватель → Simple Data Writer.

  • Укажите каталог и имя файла выходного файла (в нашем случае это /home/manisha/work/sample.csv)

Выберите элемент группы потоков.

Добавить прослушиватель Simple Data Writer Добавить → Прослушиватель → Simple Data Writer.

Укажите каталог и имя файла выходного файла (в нашем случае это /home/manisha/work/sample.csv)

Монитор Simple Data Writer

  • Давайте добавим еще одного слушателя, выбрав элемент плана тестирования Add → Listener → Monitor Results.

Давайте добавим еще одного слушателя, выбрав элемент плана тестирования Add → Listener → Monitor Results.

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

Запустите план тестирования

Теперь сохраните вышеуказанный план тестирования как monitor_test.jmx . Выполните этот план тестирования, используя Run → Start.

Посмотреть вывод

Результаты будут сохранены в файле /home/manisha/work/sample.csv. Вы также можете увидеть графический результат в прослушивателе результатов монитора, как показано на рисунке ниже.

Монитор Тест Результат1

Монитор Тест Результат2

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

jMeter — Слушатели

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

  • дерево
  • таблицы
  • диаграммы
  • журнальный файл

Все слушатели записывают одни и те же необработанные данные в выходной файл, если он указан.

Конфигурация по умолчанию

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

  • В файле jmeter.properties (или user.properties). Этот файл присутствует в папке / bin JMeter. Чтобы изменить формат по умолчанию, найдите следующую строку в jmeter.properties —

В файле jmeter.properties (или user.properties). Этот файл присутствует в папке / bin JMeter. Чтобы изменить формат по умолчанию, найдите следующую строку в jmeter.properties —

jmeter.save.saveservice.output_format=
  • Используя всплывающее окно Config, как показано на следующем снимке экрана —

Используя всплывающее окно Config, как показано на следующем снимке экрана —

JMeter Config PopUp

JMeter создает результаты тестового прогона как JMeter Text Logs (JTL). Обычно они называются файлами JTL, так как это расширение по умолчанию, но может использоваться любое расширение.

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

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

Когда работает в —

  • Режим GUI — используйте слушателя Simple Data Writer

  • режим без графического интерфейса — флаг -l может быть использован для создания файла данных.

Режим GUI — используйте слушателя Simple Data Writer

режим без графического интерфейса — флаг -l может быть использован для создания файла данных.

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

CSV Log формат

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

поле Описание Пример значения
TIMESTAMP в миллисекундах с 01.01.1970 г. 1354223881017
истекшее в миллисекундах 1858
этикетка этикетка сэмплера HTTP-запрос
responseCode например, 200, 404 200
responseMessage например, ОК Хорошо
threadName Группа потоков 1-1
тип данных например, текст текст
успех правда или ложь правда
failureMessage если есть
байтов количество байтов в образце 34908
grpThreads количество активных тем в этой группе тем 1
allThreads общее количество активных тем во всех группах 1
URL http://tutorialspoint.com
Имя файла если был использован Сохранить ответ в файл
задержка время до первого ответа 132
кодирование UTF-8
SampleCount количество образцов (1, если не объединено несколько образцов) 1
ErrorCount количество ошибок (0 или 1, если не объединены несколько выборок) 0
Hostname где образец был создан LaptopManisha
Время простоя количество миллисекунд времени простоя (обычно 0)
переменные если указано

Сохранение данных ответа

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

Загрузка (чтение) данных ответа

Чтобы просмотреть существующий файл результатов, вы можете использовать файл «Обзор …», чтобы выбрать файл. При необходимости просто создайте фиктивный план тестирования с соответствующим слушателем.

Сохранение данных графического интерфейса слушателя

JMeter способен сохранять любого слушателя в виде файла PNG. Для этого

  • Выберите слушателя на левой панели, выбрав «Правка» → «Сохранить как изображение». Откроется диалоговое окно файла.

  • Введите желаемое имя.

  • Сохранить слушателя.

Выберите слушателя на левой панели, выбрав «Правка» → «Сохранить как изображение». Откроется диалоговое окно файла.

Введите желаемое имя.

Сохранить слушателя.

jMeter — Функции

Функции JMeter и пользовательские переменные

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

  • Вызов функции выглядит так:

Вызов функции выглядит так:

${__functionName(var1,var2,var3)}
  • _functionName соответствует имени функции. Например, $ {__ threadNum} .

  • Если параметр функции содержит запятую, убедитесь, что вы избежали этого с «\», как показано ниже —

_functionName соответствует имени функции. Например, $ {__ threadNum} .

Если параметр функции содержит запятую, убедитесь, что вы избежали этого с «\», как показано ниже —

${__time(EEE\, d MMM yyyy)}
  • Переменные упоминаются как —

Переменные упоминаются как —

${VARIABLE}

Список функций

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

Тип функции название Комментарий
Информация threadNum Получить номер темы.
Информация samplerName Получить имя сэмплера (метка).
Информация machineIP Получить IP-адрес локальной машины.
Информация имя_компьютера Получить имя локальной машины.
Информация время Вернуть текущее время в различных форматах.
Информация журнал Записать (или отобразить) сообщение (и вернуть значение).
Информация LOGN Записать (или отобразить) сообщение (пустое возвращаемое значение).
вход StringFromFile Читать строку из файла.
вход FileToString Прочитайте весь файл.
вход CSVRead Читать из файла CSV с разделителями.
вход XPath Используйте выражение XPath для чтения из файла.
расчет счетчик Создайте инкрементное число.
расчет intSum Добавьте целые числа.
расчет longSum Добавьте длинные номера.
расчет случайный Генерация случайного числа.
расчет RandomString Генерация случайной строки.
расчет UUID Генерация случайного типа 4 UUID.
Scripting BeanShell Запустите скрипт BeanShell.
Scripting Java-script Обработка JavaScript (Mozilla Rhino).
Scripting jexl, jexl2 Оцените выражение Commons Jexl.
свойства имущество Прочитайте собственность.
свойства п Прочитайте свойство (сокращенный метод).
свойства SetProperty Установите свойство JMeter.
переменные Трещина Разделить строку на переменные.
переменные В Оцените имя переменной.
переменные Eval Оценить переменное выражение.
переменные evalVar Оценить выражение, хранящееся в переменной.
строка regexFunction Разобрать предыдущий ответ с помощью регулярного выражения.
строка escapeOroRegexpChars Цитировать метасимволы, используемые регулярным выражением ORO.
строка голец Генерация значений символов Unicode из списка чисел.
строка экранирования в Строки процесса, содержащие escape-символы Java (например, \ n & \ t).
строка unescapeHtml Декодировать строки в кодировке HTML.
строка escapeHtml Кодировать строки, используя кодировку HTML.
строка TestPlanName Вернуть название текущего плана тестирования.
  • Есть два вида функций —

    • Пользовательские статические значения (или переменные)

    • Встроенные функции

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

  • Переменные не могут быть вложенными; т.е. $ {Var $ {N}} не работает.

  • Для этого можно использовать функцию __V (переменная) (версии после 2.2) — $ {__ V (Var $ {N})}.

  • Этот тип замены возможен без функций, но он менее удобен и менее интуитивен.

Есть два вида функций —

Пользовательские статические значения (или переменные)

Встроенные функции

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

Переменные не могут быть вложенными; т.е. $ {Var $ {N}} не работает.

Для этого можно использовать функцию __V (переменная) (версии после 2.2) — $ {__ V (Var $ {N})}.

Этот тип замены возможен без функций, но он менее удобен и менее интуитивен.

Где использовать функции и переменные

Функции и переменные могут быть записаны в любое поле любого тестового компонента.

Следующие функции должны хорошо работать в плане тестирования —

  • intSum
  • longSum
  • имя_компьютера
  • BeanShell
  • Java-script
  • jexl
  • случайный
  • время
  • функции собственности
  • функции журнала

Функции, которые используются в плане тестирования, имеют некоторые ограничения. Переменные потока JMeter не будут полностью настроены при обработке функций, поэтому имена переменных, переданные в качестве параметров, не будут установлены, а ссылки на переменные не будут работать. Следовательно, split () и regex () и функции оценки переменных не будут работать. Функция threadNum () не будет работать и не имеет смысла на уровне плана тестирования.

Ссылки на переменные и функции

  • Ссылка на переменную в тестовом элементе выполняется путем заключения в скобки имени переменной с помощью ‘$ {‘ и ‘}’.

  • На функции ссылаются аналогичным образом, но по соглашению имена функций начинаются с «__», чтобы избежать конфликта с именами пользовательских значений.

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

Ссылка на переменную в тестовом элементе выполняется путем заключения в скобки имени переменной с помощью ‘$ {‘ и ‘}’.

На функции ссылаются аналогичным образом, но по соглашению имена функций начинаются с «__», чтобы избежать конфликта с именами пользовательских значений.

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

${__BeanShell(vars.put("name"\,"value"))}
  • Кроме того, вы можете определить свой сценарий как переменную, например, в плане тестирования —

Кроме того, вы можете определить свой сценарий как переменную, например, в плане тестирования —

SCRIPT     vars.put("name","value")
  • На скрипт можно ссылаться следующим образом:

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

${__BeanShell(${SCRIPT})}

Диалог функции помощник

Диалог Function Helper доступен на вкладке « Параметры » JMeter.

  • Используя помощник по функциям, вы можете выбрать функцию из выпадающего списка и назначить значения для ее аргументов. В левом столбце таблицы приведено краткое описание аргумента, а в правом столбце указано значение этого аргумента. Разные функции принимают разные аргументы.

  • Сделав это, нажмите кнопку «Создать», и будет создана соответствующая строка, которую вы можете скопировать и вставить в план тестирования, где вам нужно.

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

Сделав это, нажмите кнопку «Создать», и будет создана соответствующая строка, которую вы можете скопировать и вставить в план тестирования, где вам нужно.

Предопределенные переменные

Некоторые переменные определены внутри JMeter. Они —

  • COOKIE_cookiename — содержит значение cookie.

  • JMeterThread.last_sample_ok — был ли последний образец в порядке — true / false. Примечание. Это обновляется после запуска PostProcessors и Assertions.

  • НАЧАТЬ переменные.

COOKIE_cookiename — содержит значение cookie.

JMeterThread.last_sample_ok — был ли последний образец в порядке — true / false. Примечание. Это обновляется после запуска PostProcessors и Assertions.

НАЧАТЬ переменные.

Предопределенные свойства

Некоторые встроенные свойства определены JMeter. Они перечислены ниже. Для удобства свойства START также копируются в переменные с такими же именами.

  • START.MS — время запуска JMeter в миллисекундах.

  • START.YMD — время начала JMeter как ггггMMdd.

  • START.HMS — время начала JMeter в формате HHmmss.

  • TESTSTART.MS — время начала теста в миллисекундах.

START.MS — время запуска JMeter в миллисекундах.

START.YMD — время начала JMeter как ггггMMdd.

START.HMS — время начала JMeter в формате HHmmss.

TESTSTART.MS — время начала теста в миллисекундах.

Обратите внимание, что переменные / свойства START представляют время запуска JMeter, а не время начала теста. Они в основном предназначены для использования в именах файлов и т. Д.

jMeter — регулярные выражения

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

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

Стандартный пример использования выражений — получение идентификатора сеанса из ответа сервера. Если сервер возвращает уникальный ключ сеанса, мы можем легко получить его, используя выражения в нашем скрипте загрузки.

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

Стоит подчеркнуть разницу между содержимым и соответствием , как это используется в элементе проверки ответа —

  • содержит означает, что регулярное выражение соответствует хотя бы некоторой части цели, поэтому «алфавит» «содержит» «ph.b.» потому что регулярное выражение соответствует подстроке ‘phabe’.

  • совпадения означают, что регулярное выражение соответствует цели цели. Следовательно, «алфавит» «совпадает» с «al. * T».

содержит означает, что регулярное выражение соответствует хотя бы некоторой части цели, поэтому «алфавит» «содержит» «ph.b.» потому что регулярное выражение соответствует подстроке ‘phabe’.

совпадения означают, что регулярное выражение соответствует цели цели. Следовательно, «алфавит» «совпадает» с «al. * T».

Предположим, вы хотите сопоставить следующую часть веб-страницы —

name = "file" value = "readme.txt" 

И вы хотите извлечь readme.txt. Подходящее регулярное выражение будет —

name = "file" value = "(.+?)">

Специальные символы выше —

  • ( и ) — они включают часть строки соответствия, которая будет возвращена

  • , — соответствовать любому персонажу

  • + — один или несколько раз

  • ? — остановить, когда первый матч будет успешным

( и ) — они включают часть строки соответствия, которая будет возвращена

, — соответствовать любому персонажу

+ — один или несколько раз

? — остановить, когда первый матч будет успешным

Создать план тестирования JMeter

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

Сначала мы пишем HTML-страницу со списком людей и их идентификаторами электронной почты. Мы развернем его на нашем сервере Tomcat. Содержание html (index.html) следующее:

<html>
   <head>
   </head>
	
   <body>
      <table style = "border: 1px solid #000000;">
		
         <th style = "border: 1px solid #000000;">ID</th>
         <th style = "border: 1px solid #000000;">name</th>
         <th style = "border: 1px solid #000000;">Email</th>
			
         <tr>
            <td id = "ID" style = "border: 1px solid #000000;">3</td>
            <td id = "Name" style = "border: 1px solid #000000;">Manisha</td>
            <td id = "Email" style = "border: 1px solid #000000;">manisha@domain.com</td>
         </tr>
			
         <tr>
            <td id = "ID" style = "border: 1px solid #000000;">4</td>
            <td id = "Name" style = "border: 1px solid #000000;">joe</td>
            <td id = "Email" style = "border: 1px solid #000000;">joe@domain.com</td>
         </tr>
			
      </table>
   </body>
</html>

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

HTML-страница

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

Как видно из следующего снимка, идентификатор второго человека окружен <td id = «ID»> и </ td>, и это вторая строка данных, имеющая этот шаблон. Мы можем использовать это, чтобы соответствовать точному шаблону, из которого мы хотим извлечь информацию. Поскольку мы хотим извлечь две части информации с этой страницы, идентификатор человека и имя человека, поля определяются следующим образом:

HTML-код исходного кода

Запустите JMeter, добавьте группу потоков План тестирования → Добавить → Темы (пользователи) → Группа потоков .

Затем добавьте сэмплер HTTP-запроса, выберите план тестирования, щелкните правой кнопкой мыши Добавить → Сэмплер → HTTP-запрос и введите данные, как показано ниже —

  • Имя — Управление

  • Имя сервера или IP — localhost

  • Номер порта — 8080

  • Протокол — мы оставим это поле пустым, что означает, что мы хотим использовать HTTP в качестве протокола.

  • Путь — jmeter / index.html

Имя — Управление

Имя сервера или IP — localhost

Номер порта — 8080

Протокол — мы оставим это поле пустым, что означает, что мы хотим использовать HTTP в качестве протокола.

Путь — jmeter / index.html

HTTP Request Sampler

Затем добавьте экстрактор регулярных выражений. Выберите сэмплер HTTP-запросов (Управление), щелкните правой кнопкой мыши Добавить → Постпроцессор → Извлечение регулярных выражений .

Экстрактор регулярных выражений

В следующей таблице приведено описание полей, используемых на снимке экрана выше.

Sr.No Поле и описание
1

Имя ссылки

Имя переменной, в которой будет храниться извлеченный тест (refname).

2

Регулярное выражение

Шаблон, с которым будет сопоставляться извлекаемый текст. Текстовые группы, которые будут извлечены, заключены в символы «(» и «)». Мы используем ‘. +?’ для обозначения одного экземпляра текста, заключенного в теги <td ..> .. </ td>. В нашем примере это выражение — <td id = «ID»> (+?) </ Td> \ s * <td id = «Name»> (+?) </ Td> \ s *

3

шаблон

Каждая группа извлеченного текста размещается как член переменной Person, следуя порядку каждой группы шаблонов, заключенному в ‘(‘ и ‘)’. Каждая группа сохраняется как refname_g #, где refname — это строка, введенная вами в качестве ссылочного имени, а # — номер группы. $ 1 $ относится к группе 1, $ 2 $ относится к группе 2 и т. Д. $ 0 $ относится к тому, что соответствует всему выражению. В этом примере извлекаемый нами идентификатор сохраняется в Person_g1, а значение Name хранится в Person_g2.

4

Матч №

Так как мы планируем извлечь только второе вхождение этого паттерна, сопоставляя второго добровольца, мы используем значение 2. Значение 0 приведет к случайному совпадению, в то время как отрицательное значение необходимо использовать с контроллером ForEach.

5

По умолчанию

Если элемент не найден, это будет значение по умолчанию. Это необязательное поле. Вы можете оставить это поле пустым.

Имя ссылки

Имя переменной, в которой будет храниться извлеченный тест (refname).

Регулярное выражение

Шаблон, с которым будет сопоставляться извлекаемый текст. Текстовые группы, которые будут извлечены, заключены в символы «(» и «)». Мы используем ‘. +?’ для обозначения одного экземпляра текста, заключенного в теги <td ..> .. </ td>. В нашем примере это выражение — <td id = «ID»> (+?) </ Td> \ s * <td id = «Name»> (+?) </ Td> \ s *

шаблон

Каждая группа извлеченного текста размещается как член переменной Person, следуя порядку каждой группы шаблонов, заключенному в ‘(‘ и ‘)’. Каждая группа сохраняется как refname_g #, где refname — это строка, введенная вами в качестве ссылочного имени, а # — номер группы. $ 1 $ относится к группе 1, $ 2 $ относится к группе 2 и т. Д. $ 0 $ относится к тому, что соответствует всему выражению. В этом примере извлекаемый нами идентификатор сохраняется в Person_g1, а значение Name хранится в Person_g2.

Матч №

Так как мы планируем извлечь только второе вхождение этого паттерна, сопоставляя второго добровольца, мы используем значение 2. Значение 0 приведет к случайному совпадению, в то время как отрицательное значение необходимо использовать с контроллером ForEach.

По умолчанию

Если элемент не найден, это будет значение по умолчанию. Это необязательное поле. Вы можете оставить это поле пустым.

Добавьте слушателя, чтобы зафиксировать результат этого плана тестирования. Щелкните правой кнопкой мыши группу потоков и выберите «Добавить» → «Прослушиватель» → «Просмотреть дерево результатов», чтобы добавить прослушиватель.

Сохраните план тестирования как reg_express_test.jmx и запустите тест. Результат будет успешным, как показано на следующем скриншоте —

Регулярные выражения

jMeter — лучшие практики

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

Используйте несколько экземпляров JMeter в случае, если количество потоков больше.

Проверьте правила определения объема и дизайн соответственно.

Всегда используйте соглашения об именах для всех элементов.

Проверьте настройки подключения браузера по умолчанию перед выполнением сценариев.

Добавьте слушателей соответственно.

Вот несколько предложений по снижению требований к ресурсам:

Используйте режим без графического интерфейса: jmeter -n -t test.jmx -l test.jtl.

Используйте как можно меньше слушателей; При использовании флага -l, как указано выше, все они могут быть удалены или отключены.

Отключите прослушиватель «View Result Tree», так как он потребляет много памяти и может привести к зависанию консоли или нехватке памяти JMeter. Тем не менее, безопасно использовать прослушиватель «View Result Tree» с проверкой только «Errors».

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

Не используйте функциональный режим.

Используйте вывод CSV, а не XML.

Сохраняйте только те данные, которые вам нужны.

Используйте как можно меньше утверждений.

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

Не забудьте стереть локальный путь из CSV Data Set Config, если он используется.

Очистите вкладку Файлы перед каждым тестом.