karate - 如何验证数组响应包括空手道中另一个数组的值
问题描述
我有一个数组
[{"Id": "123"},{"Id": "1239"},{"Id": "1233"},{"Id": "1235"}]
我想验证另一个数组
[{"Id": "123"},{"Id": "1239"},{"Id": "1233"},{"Id": "1235"},{"Id": "1236"},{"Id": "1237"},{"Id": "1238"},{"Id": "1239"}]
写了这段代码:
* def a= [{"Id": "123"},{"Id": "1239"},{"Id": "1233"},{"Id": "1235"}]
* def b= [{"Id": "123"},{"Id": "1239"},{"Id": "1233"},{"Id": "1235"},{"Id": "1236"},{"Id": "1237"},{"Id": "1238"},{"Id": "1239"}]
* match b[*].Id contains a[*].Id
我收到以下错误
javascript evaluation failed: b[*].Id, <eval>:1:12 Expected an operand but found *
a[*].Id
^ in <eval> at line number 1 at column number 12*
请问有什么解决办法吗?
解决方案
JsonPath 仅在match
. 阅读文档:https ://github.com/intuit/karate#jsonpath-short-cuts
请添加一个步骤:
* def expected = $a[*].Id
* match b[*].Id contains expected
推荐阅读
- typescript - react-navigation v5 中重用屏幕的正确 Typescript 类型
- php - Symfony 应用程序的问题(重写?)(登录和“未找到”页面)
- javascript - 在 C# 中插入数据以响应 Message 类
- c - 在运行时 - 分段错误(核心转储) - malloc
- python-3.x - 重塑数据框类型。GroupBy 或数据透视表或 for i in?
- java - Apache Flink:如何在一段时间内未收到数据时关闭固定大小窗口
- azure-devops - Azure devops server 2019 迁移到 Azure Devop 服务
- openssl - LDAPS:即使从根目录中删除 CA 证书,openldap 绑定也成功
- php - .htaccess RewriteRule 问题,一些规则不起作用
- python - 如何解决 KeyError(f"None of [{key}] are in the [{axis_name}]") 在这种情况下(Pandas)?