首页 > 解决方案 > 如何验证空手道中嵌套 json 数组中的元素?

问题描述

我正在使用空手道框架来编写一些自动化测试用例。我想验证嵌套数组列表中每个元素的架构。对于下面的示例,我想验证返回数组中每个元素的每个子元素。有没有办法获取所有元素的所有子元素的数组列表?我可以通过调用一些java函数来做到这一点,但我想知道空手道是否有办法做到这一点。

类似于“为返回的数组中的每个元素验证其每个子元素的架构”之类​​的东西。

谢谢!

[
    {
        "id": "A",
        "children": [
            {
                "size": "10",
                "type": "A",                   
                "name": "B"
            },
            {
                "size": "10",
                "type": "A",                   
                "name": "B"
            }                            
        ]
    },
    {
        "id": "B",
        "children": [
            {
                "size": "10",
                "type": "A",                   
                "name": "B"
            }, 
            }
                "size": "3",
                "type": "C",                   
                "name": "D"
            }               
        ]
    }
]

标签: nestedkarate

解决方案


match each使用模式验证 JSON 数组会更方便,

* def children = $response[*].children[*]
* def schema = { "name": "#string","size": "#string","type": "#string"}
* match each children == schema

这将提取孩子的所有值并验证每个孩子是否与模式匹配


推荐阅读