将json数组项与具有json arrary项的随机顺序的响应进行比较

时间:2019-07-16 03:06:03

标签: karate

此文件(getAllDomain.json)具有已知/有效的响应,但domain_name / domain_code的顺序是随机的,必须与api输出进行比较。

表示.. X3可能排在最前面或最后,并且没有定义顺序。

我试图根据响应验证每个数据数组元素。但是它不起作用。

可以通过任何方法来验证arrary,并且可以忽略除“ data”以外的所有其他元素。

* def expected = read('getAllDomain.json')

* def response = 
                """
                    {
                      "status":"SUCCESS",
                      "totalCount":3,
                      "statusCode":"OK",
                      "ResultData":{
                        "data":[
                          {
                            "domain_code":"X3",
                            "domain_name":"BMW"
                          },
                          {
                            "domain_code":"Q5",
                            "domain_name":"AUDI"
                          },
                          {
                            "domain_code":"MDX",
                            "domain_name":"ACURA"
                          }
                        ]
                      }
                    }

                """

And match response.ResultData.data[*] contains any  expected.ResultData.data[0]

1 个答案:

答案 0 :(得分:1)

您在这里。并尝试阅读文档,它实际上会为您提供帮助:

* def expected =
"""
[
    {
      "domain_code": "MDX",
      "domain_name": "ACURA"
    },
    {
      "domain_code": "X3",
      "domain_name": "BMW"
    },
    {
      "domain_code": "Q5",
      "domain_name": "AUDI"
    }
]
"""
* def response = 
"""
    {
      "status":"SUCCESS",
      "totalCount":3,
      "statusCode":"OK",
      "ResultData":{
        "data":[
          {
            "domain_code":"X3",
            "domain_name":"BMW"
          },
          {
            "domain_code":"Q5",
            "domain_name":"AUDI"
          },
          {
            "domain_code":"MDX",
            "domain_name":"ACURA"
          }
        ]
      }
    }
"""
* match response.ResultData.data contains only expected