Jmeter не запускает скрипт в том порядке, в котором он написан

В jmeter я использую контроллеры вложенных циклов вместе с некоторыми постпроцессорами JSR223 внутри каждого цикла.

Вот порядок написания скрипта:

Loop Controller
    Loop Controller
        http request
    Endloop
    JSR223 postprocessor
Endloop

Я хочу, чтобы скрипт сначала запускал HTTP-запрос (несколько раз), затем, после завершения цикла, запускал постпроцессор JSR223, а затем повторял все это.

Вместо этого происходит то, что он входит в первый контроллер цикла, затем запускает постпроцессор JSR223, а затем запускает второй вложенный контроллер цикла.

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

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
122
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

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

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

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

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

Charliemotts 11.12.2020 18:46

Постпроцессор JSR223 выполняется после каждого Sampler в его Scope, в вашем случае после каждой итерации семплера HTTP-запроса.

Если вы хотите запустить его только один раз - либо поставьте сэмплер Flow Control Action на место постпроцессора JSR223 и сделайте постпроцессор JSR223 дочерним по отношению к сэмплеру Flow Control Action.

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

Спасибо Дмитрий! Я переключил свои постпроцессоры JSR223 на сэмплеры JSR223, и это исправило мой скрипт!

Charliemotts 11.12.2020 18:47

Другие вопросы по теме