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

如何在hurl.dev中检查对象数组是否包含指定对象

如何用Hurl断言对象数组包含指定对象?

我正在使用Hurl进行接口测试,当前有一个接口会返回对象数组。我希望断言该数组中包含某个特定对象,但尝试多种写法均报错:

  • 尝试代码1:
jsonpath "$" includes '{"id":"123"}'

错误信息:

69 | jsonpath "$" includes '{"id":"123"}'
    |                       ^ invalid predicate value
  • 尝试代码2:
jsonpath "$" includes "{\"id\":\"123\"}"

错误信息:

69 | jsonpath "$" includes "{\"id\":\"123\"}"
    |   actual:   [object]
    |   expected: includes string <{"id":"123"}>
  • 尝试代码3:
jsonpath "$" includes json```{"id":"123"}```

错误信息:

69 | jsonpath "$" includes json```{"id":"123"}```
    |                       ^ invalid predicate value

正确实现方式

有两种可靠的写法可以完成这个断言:

写法1:使用includes配合正确的json语法

不需要用反引号包裹JSON对象,直接通过空格将json关键字和目标对象分隔开:

jsonpath "$" includes json {"id":"123"}

该写法会把右侧的{"id":"123"}解析为JSON对象,再断言左侧数组是否包含这个对象。

写法2:通过JSONPath过滤定位元素并断言存在

利用JSONPath的过滤表达式匹配目标对象,再断言该匹配结果存在:

jsonpath "$[?(@.id == '123')]" exists

这种方式更适合只需要验证对象部分字段匹配的场景,灵活性更高。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 22:16:10