Назначьте значение из объекта массива ответов Json переменной среды в Postman

У меня есть ответ тела 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);
            }
        });

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


person mack    schedule 16.04.2020    source источник


Ответы (1)


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 в первом объекте.

Вы могли бы написать это так, используя новый синтаксис Postman:

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);
        }
    });
person Danny Dainton    schedule 16.04.2020