Выполнить JMeter, если контроллер только для первого истинного условия - PullRequest
0 голосов
/ 07 мая 2020

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

Thread Group
    \_ .. other components
    \_ While controller
        \_ Web socket single read sampler
            \_ Regular expression extractor to save entire response body
        \_ If controller (condition: occurrence of specific text in response body)
            \_ Dummy sampler (pass saved response body)
                \_ Regular expression extractor to save required value 
    \_ .. other components

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

Заранее спасибо!

1 Ответ

0 голосов
/ 07 мая 2020

Добавить функцию __ isVarDefined () к условию If Controller, таким образом Dummy Sampler будет выполняться, только если переменная, установленная его дочерним средством извлечения регулярных выражений, не существует:

enter image description here


Если вы просто хотите выйти из while l oop после первого появления данных, которые вы ищете - добавьте Действие управления потоком пробоотборник после фиктивного пробоотборника и настройка его на разрыв текущего l oop:

enter image description here

...