Использование Почтальона для получения значений из двух разных ответов для утверждения друг против друга - PullRequest
1 голос
/ 09 апреля 2019

У меня есть тест для запуска в Почтальоне, где я хотел бы установить два набора массивов друг против друга. Данные из каждого массива будут поступать из отдельных ответов.

Так что я думаю, что позвоню, чтобы получить ожидаемые результаты, и в тестах этого ответа я установлю их в переменную, а затем я буду использовать эту переменную в разделе Тесты следующего ответа, чтобы утверждать против , Мои проблемы заключаются в том, как сохранить два массива в переменные из ответов JSON. Они в разных форматах.

Вот мой ожидаемый результат. Здесь мне нужно установить переменную для захвата всех значений name, поэтому я ожидаю, что моя переменная будет содержать [4],[FX01 - Yandi],[FX03 - Whaleback].

[
    {
        "id": 16,
        "name": "4",
        "description": "44"
    },
    {
        "id": 9,
        "name": "FX01 - Yandi",
        "description": ""
    },
    {
        "id": 10,
        "name": "FX03 - Whaleback",
        "description": ""
    },
]

А вот мой фактический результат, в котором я хотел бы получить все значения «name» в элементе «sites», так что я бы снова ожидал увидеть массив [4],[FX01 - Yandi],[FX03 - Whaleback], который будет соответствовать раннему массиву, чтобы я потом утверждал против.

{
    "sites": [
        {
            "id": 16,
            "name": "4",
            "description": "44"
        },
        {
            "id": 9,
            "name": "FX01 - Yandi",
            "description": ""
        },
        {
            "id": 10,
            "name": "FX03 - Whaleback",
            "description": ""
        },
    ],
    "shutdownTypes": [
        {
            "id": 5,
            "name": "Major",
            "description": ""
        },
        {
            "id": 4,
            "name": "Minor",
            "description": ""
        },
        {
            "id": 7,
            "name": "vc",
            "description": "vcvcx"
        },
        {
            "id": 6,
            "name": "vcc",
            "description": "vcxe33&*(&*^%$#\":}{><?/"
        }
    ],
}

1 Ответ

1 голос
/ 10 апреля 2019

В первом тесте запроса получите необходимые элементы, поместите их в массив и установите этот массив в переменную окружения.

var jsonData = pm.response.json();
var array = [];

jsonData.forEach(function(element) {
  array.push(element.name);
});

pm.environment.set("pre_request_array", array);

В вашем втором тесте запроса получите переменную среды, которую мы ранее установили, и теперь можете сравнить обе:

var jsonData = pm.response.json();
var currArray = [];

var prevArray = pm.environment.get("pre_request_array");

jsonData.sites.forEach(function(element) {
  currArray.push(element.name);
});

console.log(prevArray);
console.log(currArray);

//TODO: add compare logic here

В консоли вы можете найти вывод, как показано ниже.

enter image description here

...