Как сохранить тело ответа конкретного сэмплера в то время как контроллер в JMeter - PullRequest
0 голосов
/ 20 апреля 2020

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

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

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

Thread Group
    \_ .. other components
    \_ While loop
    \_Web socket single read sampler
        \_Regular expression Extractor
    \_ .. other components

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

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

Ответы [ 2 ]

0 голосов
/ 20 апреля 2020

Вы можете добавить JSR223 PostProcessor после экстрактора регулярных выражений и использовать такой код:

if (vars.get('your_variable_here').contains('your_value_here')) {
    vars.put('some_specific_response', prev.getResponseDataAsString())
}

где:

см. Top 8 JMeter Java Классы, которые вы Следует использовать со статьей Groovy для получения дополнительной информации о ярлыках API JMeter, доступных для тестовых элементов JSR223.

Если переменная JMeter your_variable_here будет содержать your_value_here текст, PostProcessor сохранит все данные ответа родительского сэмплера в ${some_specific_response} Переменную JMeter

0 голосов
/ 20 апреля 2020

Я решил эту проблему, разработав план тестирования следующим образом:

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
...