JMeter: используйте props.get массива String внутри HTTP-запроса - PullRequest
1 голос
/ 23 января 2020

В моем BeanShell PreProcessor моем POST запросе у меня есть следующий код:

    String[] serversName = new String[]{"FrontEnd", "BackEnd"};
    props.put("serversName",serversName);

Теперь в данных тела моего POST запрос, мне нужно позвонить serverNames (скажем, мне нужен только первый элемент). Я попытался вызвать его следующим образом:

{
    "properties": {
        "name": ${props.get(serversName[${serverIndex}])},
        "ram": 1024,
        "cores": 1,
        "cpuFamily": "AMD_OPTERON",
        "availabilityZone": "AUTO"
    }

, используя ${props.get(serversName[0]), но он жалуется на BAD Request 400 !

Когда я проверяю свой запрос в слушателе, это как показано ниже:

POST data:
{
    "properties": {
        "name": ${props.get(serversName[0])},
        "ram": 1024,
        "cores": 1,
        "cpuFamily": "AMD_OPTERON",
        "availabilityZone": "AUTO"
    }

Как получить доступ к переменной props внутри моего запроса?

Ответы [ 2 ]

2 голосов
/ 23 января 2020

Вы можете сделать это способом JMeter , установив строки, упорядоченные с serversName_[sequence_number]

String[] serversName = new String[]{"FrontEnd", "BackEnd"};
for (int i=0; i < serversName.length; i++) {
    props.put("serversName_" + i, serversName[i]);
}

, а затем просто получить свойство ${__P:

${__P(serversName_${serverIndex})}
0 голосов
/ 27 января 2020

Начиная с JMeter 3.1 вы должны использовать JSR223 Test Elements и Groovy language для сценариев, поэтому рассмотрите возможность перехода на JSR223 PreProcessor , эквивалентный код будет:

String[] serversName = ["FrontEnd", "BackEnd"];
props.put("serversName", serversName);

Если вы хотите получить доступ к значению свойства на основе serverIndex значения переменной JMeter, вы можете использовать функцию __ groovy () непосредственно в теле сэмплера HTTP-запроса

${__groovy(props.get('serversName')[vars.get('serverIndex') as int],)}

Демо:

enter image description here

Дополнительная информация: Top 8 JMeter Java Классы, которые вы должны использовать с Groovy

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