JMeter - Как передать данные многострочного ответа на запрос контроллера ForEach - PullRequest
0 голосов
/ 22 октября 2019

столкнулся с проблемой копирования нескольких сообщений из одного ответа на запрос и передачи запроса forEachContoller в jmeter. Я попытался с ручкой данных ответа с RegEx и передачи ForEachContr. но он передает только одно значение, не пропуская несколько значений

Jmeter_Domian
Google
Yahoo
Facebook

Я хочу передать эти данные ответа следующему запросу forEachController.

$ {Jmeter_Domian} - моя переменная regEx, а $ {Jmeter_Domian1} - моя выходная переменная forEachController.

{
    "request": [
        {
            "Domain": "${Jmeter_Domian1}"
        },
        {
            "Domain": "${Jmeter_Domian1}"
        },
        {
            "Domain": "${Jmeter_Domian1}"
        }
]

Я выполнил вышеуказанный сценарий, но он передает

{
    "request": [
        {
            "Domain": "Google"
        },
        {
            "Domain": "Google"
        },
        {
            "Domain": "Google"
        }
]

Но ожидаемый ответ

{
    "request": [
        {
            "Domain": "Google"
        },
        {
            "Domain": "Yahoo"
        },
        {
            "Domain": "Facebook"
        }
]

может любойпомоги мне с этим. Спасибо!

1 Ответ

0 голосов
/ 22 октября 2019

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

Если вы хотите создать JSON из 3 переменных JMeter , вам нужно выполнить некоторые сценарии, используя любой JSR223 Test Element и Groovy язык, пример кода:

def data = new ArrayList()

1.upto(vars.get('Jmeter_Domian_matchNr') as int, {
    def entry = new groovy.json.internal.LazyMap()
    entry.put('Domain', vars.get("Jmeter_Domian_" + it))
    data.add(entry)
})

def builder = new groovy.json.JsonBuilder()
builder(request: data.collect { it })

vars.put('myRequest', builder.toPrettyString())

log.info('Generated request: ')
log.info(vars.get('myRequest'))

Демо:

enter image description here

Вы сможете получить доступ к сгенерированному значению как${myRequest} где требуется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...