You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用JsonPath验证RestAssured返回结果中设备ID的数量?

验证RestAssured响应中设备ID的数量

响应载荷示例

{
    "50": [
        {
            "temperature": 7,
            "day": "2023-01-02"
        },
        {
            "temperature": 6,
            "day": "2023-01-01"
        }
    ],
    "51": [
        {
            "temperature": 8,
            "day": "2023-01-01"
        }
    ]
}

该响应包含数据库中所有物理设备的数据,示例里存在ID为"50"、"51"的2个设备。

已实现的验证代码

在RestAssured测试中,已能通过以下代码验证响应中的具体项:

.body("'50'.size()", Is(2))
.body("'50'[0].temperature", Is(7))

需求

需要验证响应体中包含2个设备ID,但无需知晓具体ID值,求对应的JsonPath语法。

解决方案

因为返回的根结构是JSON对象,每个键对应一个设备ID,可通过以下两种方式验证数量:

  1. 直接验证根对象的键数量
.body("size()", Is(2))

这里的size()是Groovy对Map对象的方法调用,会返回根对象中键的总数,也就是设备ID的数量。

  1. 获取所有设备ID的集合后验证长度
// 需要导入Hamcrest的hasSize匹配器
.body("keySet()", hasSize(2))

keySet()会返回所有设备ID组成的集合,结合Hamcrest的hasSize()匹配器可直接验证集合长度是否为2。

如果需要额外验证设备ID的格式(比如是否为数字字符串),还可以扩展Groovy表达式:

.body("keySet().every { it.isNumber() }", Is(true))

内容的提问来源于stack exchange,提问作者Pascal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 17:17:01