Присвойте значение из Json объекта массива ответов переменной среды в Postman - PullRequest
0 голосов
/ 16 апреля 2020

У меня есть JSON ответ тела, в котором есть объект массива.

{

     "tokens": [
        {
            "baseValue": "need this value to be extracted"
        }
    ]
}

Следующий тестовый скрипт не может извлечь его и установить в переменной среды

var jsonData = JSON.parse(responseBody);

    pm.test('get value from Response', function(){
            if ( jsonData.tokens.hasOwnProperty("baseValue") ) {
                var xauth = jsData.tokens.baseValue;
                 postman.setEnvironmentVariable("xauth", xauth);
            }
        });

Что не так? Может ли кто-нибудь помочь мне достичь этого

1 Ответ

0 голосов
/ 16 апреля 2020
var jsonData = JSON.parse(responseBody);

pm.test('get value from Response', function(){
        if ( jsonData.tokens[0].hasOwnProperty("baseValue") ) {
            var xauth = jsonData.tokens[0].baseValue;
             postman.setEnvironmentVariable("xauth", xauth);
        }
    });

Свойство tokens является массивом и содержит один объект, вам необходимо добавить [0] в ссылку, чтобы указать, что вы хотите использовать свойство baseValue в первом объекте.

Вы можете написать это так с новым синтаксисом почтальона:

let jsonData = pm.response.json();

pm.test('get value from Response', function(){
        if ( jsonData.tokens[0].hasOwnProperty("baseValue")) {
             let xauth = jsonData.tokens[0].baseValue;
             pm.environment.set("xauth", xauth);
        }
    });
...