Проверьте, является ли тело ответа Postman Json массивом или объектом - PullRequest
0 голосов
/ 18 декабря 2018

У меня есть API, который я тестирую, и я ожидаю, что responseBody будет объектом Json (начинается с "{").Однако может случиться так, что из-за непредвиденного события ответ может быть возвращен в виде массива (начинается с «[»).

Как определить тип (массив или объект) responseBody с помощью тестов Postman??

На данный момент лучшее, что у меня есть: при ожидании объекта (не массива)

var bodyJson = pm.response.json();
tests["Response should not be an array"] = !(bodyJson instanceof Array);

Ответы [ 2 ]

0 голосов
/ 18 декабря 2018

Вы можете просто использовать:

pm.test('is an Array', () => pm.expect(pm.response.json()).to.be.an('array').but.not.an('object'))

Взято из Chaijs - встроено в собственное приложение Postman.

0 голосов
/ 18 декабря 2018

Например, у вас есть следующий json

{
  "testA": [1, 2],
  "testB": {"a": "b"}
}

, который вы можете использовать Array.isArray()

var bodyJson = pm.response.json();
tests["Response should not be an array"] = !Array.isArray(bodyJson['testA']); // false
//tests["Response should not be an array"] = !Array.isArray(bodyJson['testB']);  // true

или

var bodyJson = pm.response.json();
pm.test("is Array Test", function() {
    var notArray = !Array.isArray(bodyJson.testA) // false
    // var notArray = !Array.isArray(bodyJson.testB) // true
    pm.expect(notArray).to.eql(true);;
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...