Jmeter - Использование переменной: из запроса JDB C в другой запрос JDB C в цикле - PullRequest
0 голосов
/ 28 мая 2020

Для целей моего теста на основе идентификатора запроса JDB C мне нужно перейти к другому запросу, расположенному в ForEach Controller.

  1. Результаты возвращаются из запроса1
url id
https://pay1.com/ 1
https://pay3.com/ 3
https://pay8.com/ 8

На основе возвращенного идентификатора мне нужно перейти к другому запросу:

select *
FROM transaction  
WHERE id = '${id_1}'

Если я попробую, например: ${id_1} или ${id_3} работает отлично.

Но как я могу динамически перейти к следующему запросу без жесткого кодирования индекса?

enter image description here

1 Ответ

1 голос
/ 28 мая 2020

Контроллер ForEach имеет предопределенную переменную, отображающую текущую итерацию, согласно документации :

JMeter будет отображать индекс цикла как переменную с именем __jm__<Name of your element>__idx. Так, например, если ваш L oop Controller назван FEC, вы можете получить доступ к индексу цикла через ${__jm__FEC__idx}. Индекс начинается с 0

Итак,

  • , учитывая, что имя вашего контроллера ForEach - ForEach Controller, вы можете получить доступ к его текущему l oop как ${__jm__ForEach Controller__idx}
  • данные индексы начинаются с нуля, а ваши переменные основаны на 1, вам нужно добавить 1 к текущему индексу, что можно сделать с помощью __ intSum () function
  • , и, наконец, вам нужно будет используйте функцию __ V () , чтобы оценить полученное выражение с помощью префикса id_

Собирая все вместе, код, который вы ищете, будет примерно таким:

${__V(id_${__intSum(${__jm__ForEach Controller__idx},1,)},)}

Демо:

enter image description here

Дополнительная информация: Вот что нужно сделать, чтобы объединить несколько переменных JMeter

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