【问题标题】:Karate how to loop through array and update path param空手道如何遍历数组和更新路径参数
【发布时间】:2020-07-02 04:43:39
【问题描述】:

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

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

我关注了 Can we loop feature files and execute using multiple login users in karate

并且还检查了 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 是什么样的?
  • 它是一个数组 [ "val1", "val4", "val5" ]
  • url 路径类似于 url/context/val1 、 url/context/val4 、 url/context/val5

标签: karate


【解决方案1】:

您需要将您的 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多