空手道如何遍历数组并更新路径参数

Karate how to loop through array and update path param

我需要在 运行 我的空手道测试后进行清理,并为我创建的所有对象调用清理端点。 诸如此类:

for all objects i created:
      invoke rest endpoint path/object.id

我关注了

也检查了 https://github.com/intuit/karate/blob/master/karate-demo/src/test/java/demo/callarray/call-json-array.feature

它们允许在请求中传递参数但不允许在路径参数中传递。我尝试这样做:

def result = call read(clean-up.feature) ids

但这失败了,因为 clean-up.feature 需要两个参数路径和 id

Given Path resourcePath ,  resourceId

我也试过了

Given id: '#(ids)'
And path resourcePath, id   

Given path resourcePath,id: '#(ids)'        

但这不起作用。有办法吗?

您需要将 ids 转换为有效的 JSON 数组

* def ids = [ "val1", "val4", "val5" ] 
* def ids = karate.mapWithKey(ids, 'id')
* def result = call read(clean-up.feature) ids

内部调用的功能

And path 'url' , 'context' , id   

参考:https://github.com/intuit/karate#json-transforms