JMeter Элементы и компоненты: Группа потоков, Сэмплеры

⚡ Умное резюме

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

  • 🔘 Группа тем: Каждый поток представляет собой одного виртуального пользователя, управляющего тестируемым приложением.
  • ☑️ Сэмплеры: Определите протокол запроса — FTP, HTTP, JDBC, SMTP и другие.
  • Слушатели: Результаты можно отобразить в виде графика, дерева, таблицы или файла журнала.
  • 🧪 Элементы конфигурации: Задайте значения по умолчанию и переменные, которые сэмплеры будут повторно использовать на протяжении всего теста.
  • 🇧🇷 Прогоны, основанные на данных: В настройках набора данных CSV каждому имитируемому пользователю предоставляются разные учетные данные.
  • Современные аналоги: Проект BSF Sampler был закрыт; текущие релизы реализуют скрипт через JSR223 и Groovy.

JMeter Элементы: Группа потоков, Сэмплеры, Слушатели и Элементы конфигурации.

Что такое элемент JMeter?

Различные компоненты JMeter называются Элементами. Каждый элемент предназначен для определенной цели.

На рисунке ниже показаны некоторые общие элементы в JMeter и показывает, как они располагаются в рамках группы потоков.

JMeter Диаграмма иерархии элементов с группой потоков, расположенной выше сэмплеров, логических контроллеров, слушателей, элементов конфигурации, утверждений, таймеров и процессоров.

Изучение всех компонентов за один раз чревато путаницей и скукой. Здесь мы обсудим компоненты, которые необходимо знать, прежде чем вы сможете начать. тестов in JMeter.

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

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

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

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

Например, если вы установите количество потоков равным 100, JMeter Будет создано и смоделировано 100 пользовательских запросов к тестируемому серверу, как показано на диаграмме ниже.

Диаграмма JMeter Группа потоков имитирует пользователей с 1 по 100, каждый из которых отправляет запрос тестируемому приложению.

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

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

Как мы уже знаем, JMeter поддерживает тестирование HTTP, FTP, JDBC и многих других протоколов.

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

Но как группа потоков узнает, какой тип запроса (HTTP, FTP и т. д.) ей нужно отправить?

Ответ — сэмплеры.

Запрос пользователя может быть FTP-запросом, HTTP-запросом, JDBC-запросом и так далее. На рисунке ниже перечислены примеры, рассмотренные в этом руководстве.

Диаграмма дерева JMeter Сэмплеры: FTP-запрос, HTTP-запрос, JDBC-запрос, сэмплер BSF, сэмплер журналов доступа и сэмплер SMTP.

FTP-запрос

Представим, что вы хотите протестировать производительность FTP-сервера. Для этого можно использовать сэмплер FTP-запросов. JMeter выполнить эту задачу. Этот контроллер позволяет отправлять FTP-запрос «загрузить файл» или «загрузить файл» на FTP-сервер.

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

Например, если вы хотите загрузить файл «Test.txt» с тестируемого FTP-сервера, вам необходимо настроить некоторые параметры в JMeter как показано на рисунке ниже.

Панель для отладки запросов FTP с сервером ftp.example.com, портом 21, удаленным файлом Test.txt и анонимным входом в систему.

Панель устанавливает сервер на ftp.example.comпорт 21, удаленный файл в Test.txt и опция get(RETR), поэтому JMeter отправляет FTP-команду на этот сервер и загружает файл.

HTTP-запрос

Этот сэмплер позволяет отправлять HTTP/HTTPS-запрос на веб-сервер.

Рассмотрим пример ниже. JMeter отправляет HTTP-запрос на Google веб-сайт и извлекает с него HTML-файлы или изображения.

Диаграмма JMeter отправка HTTP-запроса на Google Сайты и получение в ответ HTML-кода и изображений.

В учебнике JMeter Тестирование производительностиМы подробнее расскажем об этом HTTP-запросе. Это наиболее показательный пример. тестирование веб-приложений Работа зависит от этого.

JDBC-запрос

Этот сэмплер позволяет выполнять операции с базой данных. тестирование производительности. Он отправляет запрос JDBC (запрос SQL) в базу данных.

Диаграмма JMeter отправка SQL-запроса на сервер базы данных и получение результата

Например, на сервере базы данных в таблице с именем test_tbl хранится поле test_result. Вам нужно запросить эти данные с сервера базы данных, поэтому вы можете настроить... JMeter отправить SQL Запрос к этому серверу для получения данных.

В панели JDBC-запросов тип запроса установлен на «Оператор SELECT», а запрос выглядит следующим образом: `select test_result from test_tbl where id = 1`.

В данном случае используется тип запроса SELECT, а сам запрос выглядит следующим образом: select test_result from test_tbl where id = 1Элемент конфигурации JDBC-соединения должен указывать пул, на который указывает поле «Имя переменной».

Сэмплер ЧФ

Этот сэмплер позволяет вам написать сэмплер, используя BSF скриптовый язык.

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

Панель BSF Sampler с полями для языка сценария, параметров, внешнего файла сценария и встроенного тела сценария.

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

Образец журнала доступа

Этот сэмплер позволяет считывать журналы доступа и генерировать HTTP-запросы. Записи в журнале могут содержать изображения, HTML-код, CSS-код и так далее.

Панель Access Log Sampler отображает поля сервера и порта по умолчанию, класс плагина TCLogParser и местоположение файла журнала.

Поле «Парсер» по умолчанию имеет значение org.apache.jmeter.protocol.http.util.accesslog.TCLogParserа поле «Расположение файла журнала» указывает на JMeter на том журнале, который вы хотите воспроизвести.

Сэмплер SMTP

Если вы хотите протестировать почтовый сервер, вы можете использовать SMTP Sampler. Этот сэмплер используется для отправки электронных писем по протоколу SMTP.

Панель SMTP Sampler с настройками сервера, адресами электронной почты, параметрами аутентификации и безопасности, а также настройками сообщений.

На панели сгруппированы настройки сервера, почтовые адреса, параметры аутентификации и сообщений, а рядом с полем «Порт» отображаются порты по умолчанию: SMTP 25, SSL 465 и StartTLS 587.

Слушатели

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

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

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

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

Просмотреть дерево результатов Отображает результаты каждого запроса пользователя в базовом HTML-формате, а на вкладке «Результаты Sampler» отображаются время загрузки, задержка, размер и код ответа.

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

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

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

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

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

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

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

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

На рисунке ниже показаны некоторые часто используемые элементы конфигурации в JMeter.

Древовидная диаграмма JMeter Элементы конфигурации: Конфигурация набора данных CSV, Менеджер HTTP-куки, Элемент конфигурации входа в систему, Настройки HTTP-запросов по умолчанию и Настройки FTP-запросов по умолчанию

Конфигурация набора данных CSV

Предположим, вы хотите протестировать веб-сайт на 100 пользователях, входящих в систему с разными учетными данными. Вам не нужно записывать скрипт 100 раз. Вы можете параметризовать скрипт для ввода различных учетных данных. Эта информация для входа (например, имя пользователя и пароль) может храниться в текстовом файле. JMeter В файле есть элемент, позволяющий считывать различные параметры из этого текстового файла. Это элемент «CSV Data Set Config», который используется для чтения строк из файла и разделения их на переменные.

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

Это пример данных в формате CSV. Это текстовый файл, содержащий имена пользователей и пароли, используемые для входа на целевой веб-сайт.

Текстовый файл csv_data.txt содержит четыре строки, разделенные запятыми, со значениями имени пользователя, пароля и длины cookie-файла.

HTTP-менеджер файлов cookie

Позвольте нам понять это на примере.

Вы использовали свой браузер (Firefox(например, Chrome и т.д.) для просмотра www.google.com.

Для входа в систему используйте свое имя пользователя и пароль.

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

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

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

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

Этот элемент позволяет вам установить значения по умолчанию, которые используют ваши контроллеры HTTP-запросов.

Например,

Вы отправляете 100 HTTP-запросов на сервер google.com.

Для каждого из 100 запросов вам придётся вручную вводить имя сервера google.com.

Вместо этого можно добавить один элемент HTTP Request Defaults, в поле «Server Name or IP» которого будет установлено значение google.com, как показано ниже.

В панели «Настройки HTTP-запросов по умолчанию» указано имя сервера google.com, порт 80, а также таймауты подключения и ответа.

Нет необходимости вводить это 100 раз. Этот элемент будет подробно объяснен в руководстве. JMeter Тестирование производительности.

Элемент конфигурации входа

Элемент «Конфигурация входа» позволяет добавлять или изменять настройки имени пользователя и пароля в сэмплерах.

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

Панель «Конфигурация входа» с именем пользователя guru99 и полем для скрытого пароля.

Элемент конфигурации входа в систему против конфигурации набора данных CSV

Элемент конфигурации входа Конфигурация набора данных CSV
Используется для имитации входа одного пользователя. Используется для имитации входа в систему нескольких пользователей.
Подходит только для ввода параметров авторизации (имя пользователя и пароль). Подходит для большого количества параметров

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

Часто задаваемые вопросы (FAQ)

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

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

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

Нет. Такие обработчики событий, как View Results Tree, буферизуют каждый образец и искажают сообщаемые ими числа. Запустите тест в режиме без графического интерфейса, запишите результаты в файл, а затем загрузите этот файл в обработчик событий после завершения выполнения.

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

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

Да. Это черновики. Groovy для бывшихtracУстановка значений, формирование полезной нагрузки и установка переменных внутри элемента JSR223. Проверяйте каждое предложение, поскольку оно часто использует устаревший API BeanShell или переменные, которые... JMeter не раскрывает.

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

Подведем итог этой публикации следующим образом: