Поддерживаемые плагины и элементы JMX-скриптов

Поддерживаемые плагины

  • BlazeMeter – HLS Plugin

  • Custom Thread Groups

  • Random CSV Data Set

  • WebSocket Samplers by Peter Doornbosch

  • WebSocket Samplers by Maciej Zaleski

  • Custom JMeter Functions

Работа с файлами

Загрузка

Для работы JMX могут требоваться типы файлов:

  • файл скрипта;

  • файлы, которые отправляются в запросе из скрипта;

  • CSV-файлы с параметрами.

Пути в JMX менять не нужно.

Подробнее см. раздел Импорт скрипта.

Результаты теста

После завершения работы JMX можно выгрузить логи JMeter. Подробнее см. раздел Просмотр подробных данных о запросах и ответах.

Группы

jp@gc - Ultimate Thread Group – рекомендуемый тип групп для JMX-скриптов, импортируемых в Boomq.

Для jp@gc - Ultimate Thread Group поддерживается:

  • отображение профиля нагрузки:

    • Start Threads Count;

    • Initial Delay;

    • Startup Time;

    • Hold Load For;

    • Shutdown Time;

  • изменение профиля нагрузки пользователем;

  • отображение активности группы:

    • Enabled;

    • Disabled;

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

Если профиль нагрузки задан параметрами:

  • значения параметров меняются на значения по умолчанию:

    • Start Threads Count = 10;

    • Initial Delay = 0;

    • Startup Time = 300;

    • Hold Load For = 600;

    • Shutdown Time = 300;

  • Step помечается как измененный: isChanged = true.

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

  • bzm - Arrivals Thread Group;

  • bzm - Concurrency Thread Group;

  • bzm - Free-Form Arrivals Thread Group;

  • jp@gc - Stepping Thread Group (deprecated);

  • setUp Thread Group;

  • tearDown Thread Group;

  • Thread Group.

Samplers

Для HTTP Request поддерживается:

  • отображение подробностей запроса:

    • URL;

    • протокол;

    • параметры;

    • headers;

    • body;

    • таймеры, которые влияют на этот запрос:

      • тип таймеров;

      • нижняя и верхняя граница задержек для таймеров, которые генерируют случайные задержки;

      • продолжительность для таймеров с константным временем задержки;

      • включение и отключение таймеров;

  • редактирование таймеров, влияющих на этот HTTP-запрос.

Samplers, которые поддерживаются и работают, но их нельзя изменить в интерфейсе Boomq:

  • Flow Control Action;

  • Debug Sampler;

  • JSR223 Sampler;

  • AJP/1.3 Sampler;

  • Access Log Sampler;

  • BeanShell Sampler;

  • Bolt Request;

  • FTP Request;

  • GraphQL HTTP Request;

  • JDBC Request;

  • JMS Point-to-Point;

  • JMS Publisher;

  • JMS Subscriber;

  • JUnit Request;

  • Java Request;

  • LDAP Extended Request;

  • LDAP Request;

  • Mail Reader Sampler;

  • OS Process Sampler;

  • SMTP Sampler;

  • TCP Sampler;

  • bzm – Streaming Sampler;

  • WebSocket Close Connection;

  • WebSocket Open Connection;

  • WebSocket Ping/Pong;

  • WebSocket Sampler;

  • WebSocket Single Read Sampler;

  • WebSocket Single Write Sampler;

  • WebSocket request-response Sampler.

Config element

HTTP Header Manager:

  • определяется область видимости;

  • headers добавляются к отображению в HTTP Request. JMX не изменяется.

HTTP Request Defaults:

  • определяется область видимости;

  • настройки добавляются к отображению в HTTP Request. Их приоритет работает по принципу чем «ближе» по уровню вложенности элемент конфигурации, тем он приоритетнее. Самая приоритетная конфигурация в самом HTTP Request.

Config elements, которые поддерживаются и работают, но их нельзя изменить в интерфейсе Boomq:

  • CSV Data Set Config;

  • bzm - Random CSV Data Set Config. Подробнее см. разделы Добавление и использование параметров и Создание набора настроек;

  • HTTP Cookie Manager;

  • HTTP Cache Manager;

  • Bolt Connection Configuration;

  • Counter;

  • DNS Cache Manager;

  • FTP Request Defaults;

  • HTTP Authorization Manager;

  • JDBC Connection Configuration;

  • Java Request Defaults;

  • Keystore Configuration;

  • LDAP Extended Request Defaults;

  • LDAP Request Defaults;

  • Login Config Element;

  • Random Variable;

  • Simple Config Element;

  • TCP Sampler Config;

  • User Defined Variables.

Listeners

После импорта JMX-скрипта Listeners отключаются в Boomq.

Logic controllers

Logic controllers, которые поддерживаются и работают, но их нельзя изменить в интерфейсе Boomq:

  • If Controller;

  • Transaction Controller;

  • Loop Controller;

  • While Controller;

  • Critical Section Controller;

  • ForEach Controller;

  • Include Controller;

  • Interleave Controller;

  • Once Only Controller;

  • Random Controller;

  • Random Order Controller;

  • Recording Controller;

  • Runtime Controller;

  • Simple Controller;

  • Throughput Controller;

  • Module Controller;

  • Switch Controller.

Pre-Processors

Pre-Processors, которые поддерживаются и работают, но их нельзя изменить в интерфейсе Boomq:

  • JSR223 PreProcessor;

  • User Parameters;

  • HTML Link Parser;

  • HTTP URL Re-writing Modifier;

  • JDBC PreProcessor;

  • RegEx User Parameters;

  • Sample Timeout;

  • BeanShell PreProcessor.

Post-Processors

Post-Processors, которые поддерживаются и работают, но их нельзя изменить в интерфейсе Boomq:

  • CSS Selector Extractor;

  • JSON Extractor;

  • JSON JMESPath Extractor;

  • Boundary Extractor;

  • Regular Expression Extractor;

  • JSR223 PostProcessor;

  • Debug PostProcessor;

  • JDBC PostProcessor;

  • Result Status Action Handler;

  • XPath Extractor;

  • XPath2 Extractor;

  • BeanShell PostProcessor.

Assertions

Assertions, которые поддерживаются и работают, но их нельзя изменить в интерфейсе Boomq:

  • Response Assertion;

  • JSON Assertion;

  • Size Assertion;

  • JSR223 Assertion;

  • XPath2 Assertion;

  • Compare Assertion;

  • Duration Assertion;

  • HTML Assertion;

  • JSON JMESPath Assertion;

  • MD5Hex Assertion;

  • SMIME Assertion;

  • XML Assertion;

  • XML Schema Assertion;

  • XPath Assertion;

  • BeanShell Assertion.

Test Fragments

Test Fragments, которые поддерживаются и работают, но их нельзя изменить в интерфейсе Boomq:

  • Test Fragment.

Timers

Таймеры, которые поддерживаются во всех типах тестов:

  • Constant Timer;

  • Gaussian Random timer;

  • Poisson Random timer;

  • Uniform Random timer.

В загруженных JMX эти таймеры отображаются со всеми параметрами.

Для этих таймеров поддерживается:

  • включение и отключение;

  • изменение значений;

  • умножение на коэффициент в настройках таймеров на уровне теста вместе со всеми остальными таймерами;

  • добавление в любой запрос;

  • удаление таймера, добавленного в Boomq. При старте теста создается новый JMX, поэтому чтобы добавить или удалить таймер, установленный на стороне frontend, измените YAML-файл.

Таймеры, которые отображаются в интерфейсе платформы во всех запросах, на которые влияют:

  • Precise Throughput Timer;

  • Constant Throughput Timer;

  • Synchronizing Timer.

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

Таймеры, которые поддерживаются и работают, но их нельзя изменить в интерфейсе Boomq:

  • JSR223 Timer;

  • BeanShell Timer.

Поддерживаемые настройки JMeter

  • XML Parser:

    • xpath2query.parser.cache.size

  • SSL Configuration:

    • https.sessioncontext.shared

    • https.default.protocol

    • https.socket.protocols

    • https.use.cached.ssl.context

    • httpclient.reset_state_on_thread_group_iteration

    • https.keyStoreStartIndex

    • https.keyStoreEndIndex

  • Apache HttpClient common properties:

    • post_add_content_type_if_missing

    • httpclient.timeout

    • httpclient.version

    • httpclient.socket.http.cps

    • httpclient.socket.https.cps

    • httpclient.loopback

    • httpclient.localaddress

  • HTTP Java Configuration:

    • http.java.sampler.retries

  • Apache HttpComponents HTTPClient configuration (HTTPClient4):

    • httpclient4.default_user_agent_disabled

    • httpclient4.auth.preemptive

    • httpclient4.retrycount

    • httpclient4.request_sent_retry_enabled

    • httpclient4.idletimeout

    • httpclient4.validate_after_inactivity

    • httpclient4.time_to_live

    • httpclient4.gzip_relax_mode

    • httpclient4.deflate_relax_mode

  • HTTP Cache Manager configuration:

    • cacheable_methods

    • cache_manager.cached_resource_mode

    • RETURN_200_CACHE.message

    • RETURN_CUSTOM_STATUS.code

    • RETURN_CUSTOM_STATUS.message

  • CSVDataSet configuration:

    • csvdataset.eofstring

    • csvdataset.file.encoding_list

  • Miscellaneous configuration:

    • cssselector.parser.cache.size

    • oro.patterncache.size

    • propertyEditorSearchPath

    • jmeter.expertMode

    • httpsampler.max_bytes_to_store_per_request

    • httpsampler.max_buffer_size

    • httpsampler.max_redirects

    • httpsampler.max_frame_depth

    • httpsampler.separate.container

    • httpsampler.ignore_failed_embedded_resources

    • httpsampler.embedded_resources_use_md5

    • httpsampler.parallel_download_thread_keepalive_inseconds

    • httpsampler.user_defined_methods

    • sampleresult.default.encoding

    • CookieManager.delete_null_cookies

    • CookieManager.allow_variable_cookies

    • CookieManager.save.cookies

    • CookieManager.name.prefix

    • CookieManager.check.cookies

    • javascript.use_rhino

    • jmeter.regex.engine

    • jmeter.regex.patterncache.size

    • jmeterengine.threadstop.wait

    • jmeterengine.stopfail.system.exit

    • jmeterengine.force.system.exit

    • jmeter.exit.check.pause

    • jmeterthread.rampup.granularity

    • document.max_size

    • text.kerning.max_document_size

    • JMSSampler.useSecurity.properties

    • jsr223.compiled_scripts_cache_size

    • httpJettyClient.maxBufferSize

Особенности режима отладки для тестов с типом OWN_JMX

Поддерживаются те же виды thread group, что и для обычного теста. В них параметры меняются следующим образом:

  • ArrivalsThreadGroup:

    • Target Rate (arrivals/min) = 30. Ограничение пропускной способности, так как нельзя ограничить количество итераций;

    • Ramp Up Time (min) = 0;

    • Ramp-Up Steps Count = 0;

    • Hold Target Rate Timer (min) = 5. Длительность 5 минут;

    • Log Threads Status into File = «». Отсутствие log-файлов;

    • Thread Iterations Limit = «». Количество итераций для треда, после выполнения которых он уничтожается и создается заново;

    • Concurrency Limit = 1;

    • Time Unit = minutes. Единица измерения времени. Рекомендуется использовать минуты, так как в target rate нельзя установить дробное число, и минимальная пропускная способность 1/sec – это слишком много;

  • ConcurrencyThreadGroup:

    • Target Concurrency = 1;

    • Ramp Up Timer (sec) = «»;

    • Ramp-Up Steps Count = «»;

    • Hold Target Rate Time (sec) = 300. Длительность – 5 минут;

    • Time Unit = seconds. Единица измерения времени;

    • Thread Iterations Limit = «». Количество итераций для треда, после выполнения которых он уничтожается и создается заново;

    • Log Threads Status into File = «». Отсутствие log-файлов;

  • FreeFormArrivalsThreadGroup:

    • Time Unit = seconds. Единица измерения времени;

    • Thread Iterations Limit = «». Количество итераций для треда, после выполнения которых он уничтожается и создается заново;

    • Log Threads Status into File = «». Отсутствие log-файлов;

    • Concurrency Limit = 1;

    • Steps:

      • First step:

        • Start Value = 1. В начале теста запускается 1 виртуальный пользователь;

        • End Value = 1. В конце теста останавливается 1 виртуальный пользователь;

        • Duration = 300. Длительность выполнения итераций – 5 минут;

      • Second step - Last step:

        • Start Value = 0;

        • End Value = 0;

        • Duration = 0;

  • SetupThreadGroup:

    • Number of threads (users) = 1;

    • Ramp-Up Period (in seconds) = 0;

    • Loop Count = 10. Количество итераций, после выполнения которых группа прекращает работу. Если у пользователя было значение меньше 10, то используется значение пользователя;

    • Forever = false. Итерации не повторяются бесконечно;

    • Scheduler = true. Если 10 итераций не успевают выполниться, то их выполнение заканчивается через указанное время в параметре Duration (seconds);

    • Duration (seconds) = 300. Длительность выполнения итераций. Если у пользователя было значение меньше 300, то используется значение пользователя;

    • Startup delay (seconds) = «»;

  • SteppingThreadGroup:

    • This group will start = 1;

    • First, wait for = 0;

    • Then start = 0;

    • Next, add = 0;

    • threads every = 0;

    • using ramp-up = 0;

    • Then hold load for = 300. Длительность – 5 минут.

    • Finally, stop = 1;

    • threads every = 0;

  • TearDownThreadGroup:

    • Number of threads (users) = 1;

    • Ramp-Up Period (in seconds) = 0;

    • Loop Count = 10. Количество итераций, после выполнения которых группа прекращает работу. Если у пользователя было значение меньше 10, то используется значение пользователя;

    • Forever = false. Итерации не повторяются бесконечно;

    • Scheduler = true. Если 10 итераций не успевают выполниться, то их выполнение через указанное время в параметре Duration (seconds);

    • Duration (seconds) = 300. Длительность выполнения итераций. Если у пользователя было значение меньше 300, то используется значение пользователя;

    • Startup delay (seconds) = «»;

  • ThreadGroup:

    • Number of threads (users) = 1;

    • Ramp-Up Period (in seconds) = 0;

    • Loop Count = 10. Количество итераций, после выполнения которых группа прекращает работу. Если у пользователя было значение меньше 10, то используется значение пользователя;

    • Forever = false. Итерации не повторяются бесконечно;

    • Scheduler = true. Если 10 итераций не успевают выполниться, то их выполнение через указанное время в параметре Duration (seconds);

    • Duration (seconds) = 300. Длительность выполнения итераций. Если у пользователя было значение меньше 300, то используется значение пользователя;

    • Startup delay (seconds) = «»;

  • UltimateThreadGroup:

    • Steps:

      • First step:

        • Start Threads Count = 1. В начале теста запускается 1 thread.

        • Initial Delay (sec) = 0;

        • Startup Time (sec) = 0;

        • Hold Load For (sec) = 300. Длительность – 5 минут.

        • Shutdown Timer = 0;

      • Second step - Last step:

        • Start Threads Count = 0;

        • Initial Delay (sec) = 0;

        • Startup Time (sec) = 0;

        • Hold Load For (sec) = 0;

        • Shutdown Timer = 0.