如何检查邮递员响应中每个值的数据类型

pgt*_*ips 3 javascript postman

如何检查api响应中每个值的数据类型不是整数?例如,如果我的api返回以下内容:

 "teamPermissions": [
    "Edit",
    "Administrator",
    "ReadOnly",
    etc
    ]
Run Code Online (Sandbox Code Playgroud)

我需要进行邮递员测试,以确保在teamPermission数组中永不返回整数。这是我开始但需要帮助的内容:

var jsonData = JSON.parse(responseBody);
tests["Team Permissions Do Not Contain Integers"] = typeof(jsonData.teamPermissions) !== "number"
Run Code Online (Sandbox Code Playgroud)

这样通过是因为teamPermissions是一个对象,但是如何检查该对象的每个值不是整数?

Dan*_*ton 5

这应该为您做检查:

pm.test('Not contain numbers', () => {
    var jsonData = pm.response.json()
    for (i = 0; i < jsonData.teamPermissions.length; i++) {
        pm.expect(jsonData.teamPermissions[i]).to.not.be.a('number')
    }
})
Run Code Online (Sandbox Code Playgroud)

如果数字是数组的一部分,则检查将执行以下操作,我已经注销了类型,以便您可以查看其检查的内容。

邮差

另一种选择是使用Lodash,这是Postman本机应用程序的内置模块。此代码将与上面的代码运行相同的检查:

pm.test('Not contain numbers', () => {
    _.each(pm.response.json().teamPermissions, (arrItem) => {
        pm.expect(arrItem).to.not.be.a('number')
    })
})
Run Code Online (Sandbox Code Playgroud)