当我尝试断言整个阵列的整个json时,只有包含是不起作用的
- 匹配响应仅包含qa_schema 基本上响应和 QA_Schema 具有相同的内容。两者都有一个名为属性的参数具有关键值对的数组,
以下是响应,
{ "agentID": null,
"browserData": null,
"channel": "CABLEDOTCOM",
"confidenceLevel": "HIGH",
"creditCustomAttributes": [
{
"name": "accountNumber",
"value": "8009001002003015"
},
{
"name": "alternatePhoneNumber",
"value": "7098863456"
},
{
"name": "customerType",
"value": "Residential"
},
{
"name": "ezEnrollCreditNoCredit",
"value": "NO"
},
{
"name": "houseNumber",
"value": "34"
},
{
"name": "inboundPhoneNumber",
"value": "9079963456"
},
{
"name": "installationDate",
"value": "12-12-2018"
},
{
"name": "installationTimeSlot",
"value": "11AM"
},
{
"name": "installationType",
"value": "self"
},
{
"name": "lineOfBusinessOrdered",
"value": "video,hsd"
},
{
"name": "mrcFromOrder",
"value": "$23"
},
{
"name": "operatorId",
"value": "9097"
},
{
"name": "salesId",
"value": "99998"
},
{
"name": "timezone",
"value": "EST"
},
{
"name": "workOrderDate",
"value": "12-12-2018"
},
{
"name": "workOrderNumber",
"value": "13-00-11-990-2018"
}
],
"csgLocationID": null,
"customerDetails": {
"billingAddress": {
"addressLine1": "PO BOX 445",
"addressLine2": "Apt 345",
"city": "AO",
"country": "USA",
"state": "AE",
"zipCode": "09061"
},
"currentAddress": {
"addressLine1": "PO BOX 445",
"addressLine2": "Apt 345",
"city": "AO",
"country": "USA",
"state": "AE",
"zipCode": "09061"
},
"dateOfBirth": "1975-01-01",
"driversLicense": {
},
"name": {
"firstName": "JOHN",
"lastName": "BREEN",
"middleName": "WAKEFIELD"
},
"shippingAddress": {
"addressLine1": "PO BOX 445",
"addressLine2": "Apt 345",
"city": "AO",
"country": "USA",
"state": "AE",
"zipCode": "09061"
},
"socialSecurityNumber": "666436878",
"telephoneNumber": "7818945369"
},
"customerID": null,
"customerType": "RESIDENTIAL",
"hitPreference": "HIT_WITH_NARRATIVE",
"installationType": null,
"language": null,
"lineOfBusiness": null,
"marketID": "1111",
"matchPreference": "EXACT_ONE",
"orderID": null,
"verificationStatus": {
"bureauResponse": null,
"failureReasons": [
{
"code": "ERROR",
"message": "Retriable Server Error. Response Code: 503, Response Message: Service Unavailable"
},
{
"code": "R0201",
"message": "Workflow Complete."
}
],
"status": "SUCCESS"
},
"workOrderNumber": null
}
以下是 qa_schema
{ "agentID": null,
"browserData": null,
"channel": "CABLEDOTCOM",
"confidenceLevel": "HIGH",
"creditCustomAttributes": [
{
"name": "lineOfBusinessOrdered",
"value": "video,hsd"
},
{
"name": "timezone",
"value": "EST"
},
{
"name": "alternatePhoneNumber",
"value": "7098863456"
},
{
"name": "mrcFromOrder",
"value": "$23"
},
{
"name": "workOrderDate",
"value": "12-12-2018"
},
{
"name": "installationDate",
"value": "12-12-2018"
},
{
"name": "houseNumber",
"value": "34"
},
{
"name": "accountNumber",
"value": "8009001002003015"
},
{
"name": "ezEnrollCreditNoCredit",
"value": "NO"
},
{
"name": "customerType",
"value": "Residential"
},
{
"name": "installationType",
"value": "self"
},
{
"name": "salesId",
"value": "99998"
},
{
"name": "inboundPhoneNumber",
"value": "9079963456"
},
{
"name": "workOrderNumber",
"value": "13-00-11-990-2018"
},
{
"name": "installationTimeSlot",
"value": "11AM"
},
{
"name": "operatorId",
"value": "9097"
}
],
"csgLocationID": null,
"customerDetails": {
"age": "#ignore",
"billingAddress": {
"addressLine1": "PO BOX 445",
"addressLine2": "Apt 345",
"city": "AO",
"country": "USA",
"state": "AE",
"zipCode": "09061"
},
"currentAddress": {
"addressLine1": "PO BOX 445",
"addressLine2": "Apt 345",
"city": "AO",
"country": "USA",
"state": "AE",
"zipCode": "09061"
},
"dateOfBirth": "##string",
"driversLicense": {
},
"name": {
"firstName": "JOHN",
"lastName": "BREEN",
"middleName": "WAKEFIELD"
},
"shippingAddress": {
"addressLine1": "PO BOX 445",
"addressLine2": "Apt 345",
"city": "AO",
"country": "USA",
"state": "AE",
"zipCode": "09061"
},
"socialSecurityNumber": "#ignore",
"telephoneNumber": "7818945369"
},
"customerID": null,
"customerType": "RESIDENTIAL",
"hitPreference": "HIT_WITH_NARRATIVE",
"installationType": null,
"language": null,
"lineOfBusiness": null,
"marketID": "1111",
"matchPreference": "EXACT_ONE",
"orderID": null,
"verificationStatus": {
"bureauResponse": null,
"failureReasons": [
{
"code": "ERROR",
"message": "Retriable Server Error. Response Code: 503, Response Message: Service Unavailable"
},
{
"code": "R0201",
"message": "Workflow Complete."
}
],
"status": "SUCCESS"
},
"workOrderNumber": null
}
如果您手动比较这2个,两者都是完全一样的。但是唯一的区别是顺序。两者都处于不同的顺序。
因此,当我确实
- 匹配响应仅包含QA_Schema
如果没有办法,我应该按字母顺序排序数组,然后做断言?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
@gopalsubramanian-您可以通过两种方式执行此操作:
请参阅此处的文档 -
@GopalSubramanian - You can do this in two ways:
See documentation here - https://github.com/karatelabs/karate#schema-validation
当您筑巢时,请始终尝试在JSON的一部分上进行
匹配
。您如何分裂您的决定。我将您的复杂转储简化为一个简单的示例。但是您会在这里得到这个想法:
如果需要,请花一些时间研究其他答案:
143475
https://stackoverflow.com/a/65036047/143475
When you have nesting, always try to do a
match
on parts of your JSON. How you divide that is up to you.I have simplified your complex dump into a simple example. But you will get the idea here:
Please spend some time studying other answers if needed:
https://stackoverflow.com/a/68789345/143475
https://stackoverflow.com/a/65036047/143475