如何统计使用Postman返回的json的长度?

Igg*_*ass 4 javascript json postman

我发送一个请求,该请求发回如下内容:

{
    "items": [
        {
            "id": 86154,
            ...
        },
        {
            "id": 86194,
            ...
        }
}
Run Code Online (Sandbox Code Playgroud)

我想在 Postman 测试部分计算这个数组的大小。所以我写道:

var body = JSON.parse(pm.response.json());
tests["Count: "  + body.items] = true;
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

正如您在上面看到的,它没有起作用。我对 PostMan 和 Javascript 都很陌生,这可能就是原因。

Dan*_*ton 10

简单的答案是使用新的 API 语法得到同样的结果pm.*

pm.test(`Count: ${pm.response.json().items.length}`)
Run Code Online (Sandbox Code Playgroud)

您使用的语法不正确JSON.parse(pm.response.json())- 您只需使用pm.response.json()并删除JSON.parse().

要获取对象的数量,您只需使用.length属性。

我不确定您要测试什么,但这个简单的测试将检查或断言数组中是否有 2 个对象(如您的示例):

let body = pm.response.json()
pm.test("Check the Items array length", () => {
    pm.expect(body.items.length).to.equal(2)
})
Run Code Online (Sandbox Code Playgroud)

这是使用较新的pm.test()语法,有关此内容以及所有其他pm.*API 方法的更多信息可以在此处找到:

https://learning.postman.com/docs/postman/scripts/postman-sandbox-api-reference/

如果您只想注销该值而不是将其添加到测试中,则可以console.log(pm.response.json().items.length)Tests选项卡中使用并在 Postman 控制台中查看该值的显示。