Karate 空手道测试:如何匹配只包含一个模式的每个嵌套数组响应

Karate 空手道测试:如何匹配只包含一个模式的每个嵌套数组响应,karate,Karate,是否可以仅使用一个模式匹配嵌套数组响应的每个元素(使用包含) 我有一组带有请求参数和响应模式的yml文件,如下所示: response: appId: '#string' attributes: '#array' login: '#string' permissions: '#array' metadata: roles: '##array' userData: description: '#string' employeeId: '#string

是否可以仅使用一个模式匹配嵌套数组响应的每个元素(使用包含)

我有一组带有请求参数和响应模式的yml文件,如下所示:

response:
  appId: '#string'
  attributes: '#array'
  login: '#string'
  permissions: '#array'
  metadata:
    roles: '##array'
  userData:
    description: '#string'
    employeeId: '#string'
    employeeNumber: '##string'
    id: '#string'
    login: '#string'
    mail: '#string'
    name: '#string'
然后,在可重用功能中:

* def req = read(<testDataFile>)
* match response contains req.response
或任何其他表达


非常感谢

您不能用一个“模式”来实现这一点,您必须将重复元素单独声明为一个空手道变量:


您不能使用单个“模式”执行此操作,必须将重复元素单独声明为空手道变量:

response:
  appId: '##string'
  attributes: '##array'
  attributes[*]:
    key: '#string'
* def foo = { a: '#number' }

* def bar = { baz: [{ a: 1 }, { a: 2 }, { a: 3 }] }

* match each bar.baz == foo
* match bar == { baz: '#[] foo' }