Karate 动态响应的空手道断言

Karate 动态响应的空手道断言,karate,Karate,实际响应: { "data": [ { "last_name": "Bluth", "id": 1, "avatar": "https://s3.amazonaws.com/uifaces/faces/twitter/calebogden/128.jpg", "first_name": "George", "email": "george.bluth@reqres.in" }, { "last_nam

实际响应:

{
"data": [
    {
      "last_name": "Bluth",
      "id": 1,
      "avatar": "https://s3.amazonaws.com/uifaces/faces/twitter/calebogden/128.jpg",
      "first_name": "George",
      "email": "george.bluth@reqres.in"
    },
    {
      "last_name": "Weaver",
      "id": 2,
      "avatar": "https://s3.amazonaws.com/uifaces/faces/twitter/josephstein/128.jpg",
      "first_name": "Janet",
      "email": "janet.weaver@reqres.in"
    }
  ]
}
{"George","Janet"}
Feature: Array Match

Scenario: 
    * def act = 
    """
{
  "per_page": 6,
  "total": 12,
  "ad": {
    "company": "StatusCode Weekly",
    "text": "A weekly newsletter focusing on software development, infrastructure, the server, performance, and the stack end of things.",
    "url": "http://statuscode.org/"
  },
  "data": [
    {
      "last_name": "Bluth",
      "id": 1,
      "avatar": "https://s3.amazonaws.com/uifaces/faces/twitter/calebogden/128.jpg",
      "first_name": "George",
      "email": "george.bluth@reqres.in"
    },
    {
      "last_name": "Weaver",
      "id": 2,
      "avatar": "https://s3.amazonaws.com/uifaces/faces/twitter/josephstein/128.jpg",
      "first_name": "Janet",
      "email": "janet.weaver@reqres.in"
    },
    {
      "last_name": "Wong",
      "id": 3,
      "avatar": "https://s3.amazonaws.com/uifaces/faces/twitter/olegpogodaev/128.jpg",
      "first_name": "Emma",
      "email": "emma.wong@reqres.in"
    },
    {
      "last_name": "Holt",
      "id": 4,
      "avatar": "https://s3.amazonaws.com/uifaces/faces/twitter/marcoramires/128.jpg",
      "first_name": "Eve",
      "email": "eve.holt@reqres.in"
    },
    {
      "last_name": "Morris",
      "id": 5,
      "avatar": "https://s3.amazonaws.com/uifaces/faces/twitter/stephenmoon/128.jpg",
      "first_name": "Charles",
      "email": "charles.morris@reqres.in"
    },
    {
      "last_name": "Ramos",
      "id": 6,
      "avatar": "https://s3.amazonaws.com/uifaces/faces/twitter/bigmancho/128.jpg",
      "first_name": "Tracey",
      "email": "tracey.ramos@reqres.in"
    }
  ],
  "page": 1,
  "total_pages": 2
}
    """
    * def exp = ["George","Janet","Emma","Eve","Charles","Tracey"]
    * match $act.data[*].first_name == exp
我有一个数据库对象,它返回first_name的数组

期望值:

{
"data": [
    {
      "last_name": "Bluth",
      "id": 1,
      "avatar": "https://s3.amazonaws.com/uifaces/faces/twitter/calebogden/128.jpg",
      "first_name": "George",
      "email": "george.bluth@reqres.in"
    },
    {
      "last_name": "Weaver",
      "id": 2,
      "avatar": "https://s3.amazonaws.com/uifaces/faces/twitter/josephstein/128.jpg",
      "first_name": "Janet",
      "email": "janet.weaver@reqres.in"
    }
  ]
}
{"George","Janet"}
Feature: Array Match

Scenario: 
    * def act = 
    """
{
  "per_page": 6,
  "total": 12,
  "ad": {
    "company": "StatusCode Weekly",
    "text": "A weekly newsletter focusing on software development, infrastructure, the server, performance, and the stack end of things.",
    "url": "http://statuscode.org/"
  },
  "data": [
    {
      "last_name": "Bluth",
      "id": 1,
      "avatar": "https://s3.amazonaws.com/uifaces/faces/twitter/calebogden/128.jpg",
      "first_name": "George",
      "email": "george.bluth@reqres.in"
    },
    {
      "last_name": "Weaver",
      "id": 2,
      "avatar": "https://s3.amazonaws.com/uifaces/faces/twitter/josephstein/128.jpg",
      "first_name": "Janet",
      "email": "janet.weaver@reqres.in"
    },
    {
      "last_name": "Wong",
      "id": 3,
      "avatar": "https://s3.amazonaws.com/uifaces/faces/twitter/olegpogodaev/128.jpg",
      "first_name": "Emma",
      "email": "emma.wong@reqres.in"
    },
    {
      "last_name": "Holt",
      "id": 4,
      "avatar": "https://s3.amazonaws.com/uifaces/faces/twitter/marcoramires/128.jpg",
      "first_name": "Eve",
      "email": "eve.holt@reqres.in"
    },
    {
      "last_name": "Morris",
      "id": 5,
      "avatar": "https://s3.amazonaws.com/uifaces/faces/twitter/stephenmoon/128.jpg",
      "first_name": "Charles",
      "email": "charles.morris@reqres.in"
    },
    {
      "last_name": "Ramos",
      "id": 6,
      "avatar": "https://s3.amazonaws.com/uifaces/faces/twitter/bigmancho/128.jpg",
      "first_name": "Tracey",
      "email": "tracey.ramos@reqres.in"
    }
  ],
  "page": 1,
  "total_pages": 2
}
    """
    * def exp = ["George","Janet","Emma","Eve","Charles","Tracey"]
    * match $act.data[*].first_name == exp
我在这里使用场景大纲,因为我需要检查一系列测试,并且输出是动态的。我们如何为这类场景编写断言???
类似于response.data[].first_name==预期值???

示例代码:

{
"data": [
    {
      "last_name": "Bluth",
      "id": 1,
      "avatar": "https://s3.amazonaws.com/uifaces/faces/twitter/calebogden/128.jpg",
      "first_name": "George",
      "email": "george.bluth@reqres.in"
    },
    {
      "last_name": "Weaver",
      "id": 2,
      "avatar": "https://s3.amazonaws.com/uifaces/faces/twitter/josephstein/128.jpg",
      "first_name": "Janet",
      "email": "janet.weaver@reqres.in"
    }
  ]
}
{"George","Janet"}
Feature: Array Match

Scenario: 
    * def act = 
    """
{
  "per_page": 6,
  "total": 12,
  "ad": {
    "company": "StatusCode Weekly",
    "text": "A weekly newsletter focusing on software development, infrastructure, the server, performance, and the stack end of things.",
    "url": "http://statuscode.org/"
  },
  "data": [
    {
      "last_name": "Bluth",
      "id": 1,
      "avatar": "https://s3.amazonaws.com/uifaces/faces/twitter/calebogden/128.jpg",
      "first_name": "George",
      "email": "george.bluth@reqres.in"
    },
    {
      "last_name": "Weaver",
      "id": 2,
      "avatar": "https://s3.amazonaws.com/uifaces/faces/twitter/josephstein/128.jpg",
      "first_name": "Janet",
      "email": "janet.weaver@reqres.in"
    },
    {
      "last_name": "Wong",
      "id": 3,
      "avatar": "https://s3.amazonaws.com/uifaces/faces/twitter/olegpogodaev/128.jpg",
      "first_name": "Emma",
      "email": "emma.wong@reqres.in"
    },
    {
      "last_name": "Holt",
      "id": 4,
      "avatar": "https://s3.amazonaws.com/uifaces/faces/twitter/marcoramires/128.jpg",
      "first_name": "Eve",
      "email": "eve.holt@reqres.in"
    },
    {
      "last_name": "Morris",
      "id": 5,
      "avatar": "https://s3.amazonaws.com/uifaces/faces/twitter/stephenmoon/128.jpg",
      "first_name": "Charles",
      "email": "charles.morris@reqres.in"
    },
    {
      "last_name": "Ramos",
      "id": 6,
      "avatar": "https://s3.amazonaws.com/uifaces/faces/twitter/bigmancho/128.jpg",
      "first_name": "Tracey",
      "email": "tracey.ramos@reqres.in"
    }
  ],
  "page": 1,
  "total_pages": 2
}
    """
    * def exp = ["George","Janet","Emma","Eve","Charles","Tracey"]
    * match $act.data[*].first_name == exp

参考链接:

我跳过这篇文章,因为它太多了。看看你是否可以用5行代码创建一个简单的例子,或者只是等待其他人。您还可以阅读其他答案:|嘿,彼得,正如您所说的有限行,请检查您是否已经有了答案,谢谢您的评论!我会检查一下,然后给你回复!当我对$response.data[*]使用print关键字时,还有一个问题。first_name,这是否打印我的first_name数组?使用def将其分配给变量,并打印变量
给定url'https://reqres.in/api/users'When method Get*def values=$response.data[*].first_name;*打印值
我无法打印请在我给出的示例中尝试。它对我有用。另外,请尝试打印GET响应,以检查数据是否首先正确到达。