Karate 空手道-验证整个json响应的模式
我正在使用空手道验证GET请求的整个json响应 下面是来自请求的json响应示例(我只为items显示了两个元素) 以下是我试图验证的方法:Karate 空手道-验证整个json响应的模式,karate,Karate,我正在使用空手道验证GET请求的整个json响应 下面是来自请求的json响应示例(我只为items显示了两个元素) 以下是我试图验证的方法: And match response.*.* == """ { "createdById" : '#string', "createdByName" : '#string', "changedByName" : '#string', "oid" : '#string', "links" : '#obj
And match response.*.* ==
"""
{
"createdById" : '#string',
"createdByName" : '#string',
"changedByName" : '#string',
"oid" : '#string',
"links" : '#object',
"name" : '#string'
}
"""
但是,我得到了一个断言错误:原因:实际值与映射不一样。如果我尝试在花括号周围放上方括号,我会得到原因:实际数组和预期数组的大小不一样
。此外,我还尝试使用响应,如$.[*].
等,但无法使其工作
提前谢谢 您需要注意JSON结构,并且更好地理解JsonPath。您可以剪切和粘贴以下内容,并查看其工作情况:
* def response =
"""
[
{
"items": [
{
"createdById": "ADMIN",
"createdByName": "ADMIN",
"changedByName": "ADMIN",
"oid": "121212fgfg2123",
"links": {
"self": {
"href": "/internal/organiz/12345"
},
"subcom": []
},
"name": "NewETLTesting"
},
{
"createdById": "ADMIN",
"createdByName": "ADMIN",
"changedByName": "ADMIN",
"oid": "1212dfffg45",
"links": {
"self": {
"href": "/internal/organiz/5a6e0"
},
"subcom": []
},
"name": "FromKarateModified"
}
]
}
]
"""
And match each response[0].items ==
"""
{
"createdById" : '#string',
"createdByName" : '#string',
"changedByName" : '#string',
"oid" : '#string',
"links" : '#object',
"name" : '#string'
}
"""
下面的模式将正确验证整个响应
* def refSubcom = {<object schema>}
* def refself = {href : '#string'}
* def refLinks = {self : '#object refself', subcom:'##[] refSubcom'}
* def optionalItemArr =
"""
{
createdById:'#string',
createdByName:'#string',
changedByName:'#string',
oid: '#string',
links: '#object refLinks',
name:'#string'
}
###
* def itemData =
"""
{
item : '##[] optionalItemArr'
}
"""
* def reponseSchema = '##object itemData'
* def SuccessSchema = '##[] reponseSchema'
*def refSubcom={}
*def refself={href:'#string'}
*def refLinks={self:'#object refself',subcom:'##[]refSubcom'}
*def optionalItemArr=
"""
{
createdById:“#字符串”,
createdByName:“#字符串”,
changedByName:“#string”,
oid:“#字符串”,
链接:“#对象重新链接”,
名称:“#字符串”
}
###
*def itemData=
"""
{
项目:“##[]optionalItemArr”
}
"""
*def reponseSchema='##对象项数据'
*def SUCCESSCHEMA=“##[]响应模式”
您可以参考以下链接:我们是否能够验证响应中的所有对象,如响应[*]。项?是否可能?
* def refSubcom = {<object schema>}
* def refself = {href : '#string'}
* def refLinks = {self : '#object refself', subcom:'##[] refSubcom'}
* def optionalItemArr =
"""
{
createdById:'#string',
createdByName:'#string',
changedByName:'#string',
oid: '#string',
links: '#object refLinks',
name:'#string'
}
###
* def itemData =
"""
{
item : '##[] optionalItemArr'
}
"""
* def reponseSchema = '##object itemData'
* def SuccessSchema = '##[] reponseSchema'