Как использовать одно значение для запроса из нескольких значений, извлеченных с помощью JSON Extractor - PullRequest
1 голос
/ 21 мая 2019

Используя JSON Extractor, извлек несколько значений из тела ответа. Debug Sampler -> For например показывает эти 3 значения ID_1=212 ID_2=211 ID_3=225

Как использовать каждый из них в следующем HTTP-запросе? Например, как использовать одно значение для каждого прогона?

тело запроса POST {"id"={$ID}} -> doesn't work.

Однако {"id"={$ID_1}}, {"id"={$ID_2}}, {"id"={$ID_3}} работает индивидуально. Я хочу избегать ручного изменения запроса тела POST каждый раз.

Ответы [ 2 ]

0 голосов
/ 23 мая 2019

Вы можете использовать для каждого цикла по вашему требованию. Проверьте jmeter ForEach Controller . Первый пример jmx ForEach может удовлетворить ваше требование. Ниже reqEx, чтобы получить все. Затем forEach для всех regEx в качестве входных данных в «inputVar» и получить его с помощью returnVar. Передайте returnVar к следующему запросу HTTP 2. enter image description here

Надеюсь, это поможет.

0 голосов
/ 21 мая 2019

Добавьте BeanShell PostProcessor сразу после JSON Extractor (на том же уровне, что и дочерний элемент первого запроса) с приведенным ниже кодом в области кода

int matchNr = Integer.parseInt(vars.get("ID_matchNr"));// ID is the reference name of your JSON Extractor

String ID = "";
for(int i = 1; i <= matchNr; i++){
    if(i == 1){
     ID = "{\"id\"=" + vars.get("ID_" + i) + "}, ";
    }

    else if(i == matchNr){
     ID = ID + "{\"id\"=" + vars.get("ID_" + i) + "}";
    }

    else{
         ID = ID + "{\"id\"=" + vars.get("ID_" + i) + "}, ";
    }

    vars.put("IDs", ID);
}

Теперь используйтепеременная ${IDs} в вашем теле запроса POST, значение будет примерно таким: {"id"=1}, {"id"=2}, {"id"=3}, {"id"=4}

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