测试邮递员响应正文Json是数组还是对象

时间:2018-12-18 10:39:47

标签: javascript postman

我有一个正在测试的API,我期望responseBody是一个Json对象(以“ {”开头)。但是,可能由于意外事件,响应可能作为数组返回(以“ [”开头)。

如何使用Postman测试确定responseBody的类型(数组或对象)?

到目前为止,我拥有的最好的是: 当需要一个对象(不是数组)时

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

2 个答案:

答案 0 :(得分:2)

您可以使用:

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

取自Chaijs-内置于本地Postman应用程序中。

答案 1 :(得分:1)

例如,您具有以下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);;
});