Arrays 空手道-如何使用从响应数组接收的值循环Soap请求

Arrays 空手道-如何使用从响应数组接收的值循环Soap请求,arrays,api,cucumber,karate,Arrays,Api,Cucumber,Karate,我发出一个Soap请求,并收到作为数组返回的响应: - [print] [ "M4205N", "M4206U" ] 对于数组中的每个项,我想发出另一个Soap请求。我已经阅读了如何使用和调用功能文件,以及如何使用和调用js函数。我不知道如何在数组中循环,并将每个值传递给另一个soap请求xml(一次一个) 我想这样做: @ignore Feature: Background: * def myNewRequest = read('soap.xml') Scenario: G

我发出一个Soap请求,并收到作为数组返回的响应:

 - [print] [
  "M4205N",
  "M4206U"
]
对于数组中的每个项,我想发出另一个Soap请求。我已经阅读了如何使用和调用功能文件,以及如何使用和调用js函数。我不知道如何在数组中循环,并将每个值传递给另一个soap请求xml(一次一个)

我想这样做:

@ignore
Feature:

Background:
* def myNewRequest = read('soap.xml')

Scenario:
  Given soapURL
  * replace myNewRequest 
  | token      | value              |
  | @@refNum@@ | responseArrayValue |
  When request myNewRequest 
  And method post
  • 给定soapURL
  • 方法岗
  • def responseArray=/xml我想要的代码路径/
  • def result=调用读取('otherRequest.feature')响应RAY
otherRequest.feature文件的外观如下所示:

@ignore
Feature:

Background:
* def myNewRequest = read('soap.xml')

Scenario:
  Given soapURL
  * replace myNewRequest 
  | token      | value              |
  | @@refNum@@ | responseArrayValue |
  When request myNewRequest 
  And method post
但是,我得到了这个错误:

GetNewMessageList.feature:27-特性调用循环数组位置的参数不是json或映射:0,M4205N


如何循环数组中的每个项目,并将每个值传递给另一个要素文件?

添加这一行应该可以满足您的需要。是的,“循环”数组必须是JSON对象的数组,这是一个硬性要求。但您可以在一个步骤中转换一组基本体:

* def responseArray = karate.mapWithKey(responseArray, 'responseArrayValue')
这里记录了这一点: