Karate 在空手道中创建动态预期响应并维护测试数据以创建它们

Karate 在空手道中创建动态预期响应并维护测试数据以创建它们,karate,Karate,我正在寻找一种解决方案,用karate动态断言json响应,并为每个测试用例维护不同的数据。 以下是示例响应: [{ "id": "Level 1 id", "name": "Name 1", "description": [{ "locale": "locale 1", "description": "description 1" }, { "locale": "lo

我正在寻找一种解决方案,用karate动态断言json响应,并为每个测试用例维护不同的数据。 以下是示例响应:

[{
    "id": "Level 1 id",
    "name": "Name 1",
    "description": [{
            "locale": "locale 1",
            "description": "description 1"
        },
        {
            "locale": "locale2",
            "description": "description2"
        }
    ],
    "type": "type1",
    "Value": 100.0,
    "ObjectType": "test123",
    "Object": [{
            "id": "1",
            "groupName": "OBJECT1",
            "filterCriteria": "filter1",
            "TypeMethod": "method1",
            "nGroup": "AND1",
            "criteria": [{
                    "name": "multiple objects but no arrays"
                },
                {
                    "name": "multiple objects but no arrays"
                },
                {
                    "name": "multiple objects but no arrays"
                }
            ]
        },
        {
            "id": "2",
            "groupName": "OBJECT2",
            "filterCriteria": "filter2",
            "TypeMethod": "method2",
            "nGroup": "AND2",
            "criteria": [{
                    "name": "multiple objects here but no arrays"
                },
                {
                    "name": "multiple objects here but no arrays"
                },
                {
                    "name": "multiple objects here but no arrays"
                },
                {
                    "id": "3",
                    "groupName": "OBJECT3",
                    "filterCriteria": "filter3",
                    "TypeMethod": "method3",
                    "nGroup": "AND3",
                    "criteria": [{
                            "name": "multiple objects but no arrays"
                        },
                        {
                            "name": "multiple objects but no arrays"
                        },
                        {
                            "name": "multiple objects but no arrays"
                        }
                    ]
                }
            ]
        }
    ]
}]
我想断言id、name、description和对象数组,它们的值根据不同的id而变化。我知道模式方法,但我需要断言特定的值。我还尝试了match特性,为每个测试用例保留json文件,但这在不同的测试环境中变得很难维护。有谁能帮我找到最好的断言方法,以及如何维护测试数据。

不要这样做

这是我观察到一些团队空手道出了问题后的建议。这些团队通常来自编程或Java背景,并期望测试用例也必须显示“重用”和“重用”

有关尝试进行过多重复使用并将多个测试流合并到一个“路径”中时发生的情况的示例,请参阅堆栈溢出的另一个答案:

也就是说,您可以拥有一个JSON文件,然后使用关键字或替换不同场景的某些部分。请花些时间阅读链接的文档和示例。它会回答你所有的问题。然后问一些关于堆栈溢出的具体问题,而不是像您在这里所问的那样的“笼统”问题