当前位置: 首页 > 知识库问答 >
问题:

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

司空坚
2023-03-14

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

 - [print] [
  "M4205N",
  "M4206U"
]
  • 给定SOAPURL
  • 和方法日志
  • def responseArray=/XML所需代码的路径/
  • def result=call read(“OtherRequest.Feature”)responseArray

另一个request.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或map位置:0,M4205N

我如何循环遍历数组中的每个项,并将每个值传递给另一个特征文件?

共有1个答案

艾飞宇
2023-03-14

增加这一行应该可以达到你想要的效果。是的,有一个硬性要求,即“循环”数组应该是一个JSON对象的数组。但您可以在一个步骤中转换基元数组:

* def responseArray = karate.mapWithKey(responseArray, 'responseArrayValue')

这在这里进行了说明:https://github.com/intuit/karate#json-transforms

 类似资料:
  • 我如何将值从空手道API传递到Java类? 正如文档中提到的,我使用了以下代码段从Java API获取响应。但它返回带有未格式化的JSON内容的响应。 然后,我使用以下脚本打印响应。 多谢了。

  • 使用Apache camel 2.15.3创建了SOAP服务,一切正常,即使响应SOAP正文也是有效的。 骆驼2.15.3依赖于cxf 3.0.6 但是当我将cxf-core更新到3.1.3时,一切都很好,除了SOAP响应体是空的。 没有错误日志,服务器启动正常。 我是否缺少一些依赖项? POM。xml

  • 我需要关于适当的空手道请求的指示,以得到响应,这是一个设计的jpg文件。 我想我写了有效的请求,因为邮递员能够响应和返回的jpg文件预期。但同样的要求在空手道中不起作用。它返回一些java异常,这些异常没有为我澄清原因。 请帮助!

  • 我正在使用来自动处理肥皂请求,我想使用XML Schema(XSD)验证XML格式的响应。 我需要模式。java调用它的代码和函数。功能文件。我尝试使用RESTAPI和空手道演示来验证json模式,并找到了正确的结果,但soap(xml、xsd)没有得到。我正在尝试这个模式。用于XSD验证的java。

  • 我用空手道0.9。5.我正在测试一个返回125MB json响应的endpoint(我知道,不应该在json上这样做——但我现在还停留在这里)。我怎样才能禁止空手道解析响应json,而只是将其视为纯文本?响应需要几毫秒才能完成,但空手道只是挂起尝试解析响应。我不需要验证响应,只需检查200 OK。 谢谢

  • 不幸的是,ei从我的后端获得的响应不是正确的xml格式,并且它以一种糟糕的格式给出了如下所示的响应: 因此,现在空手道无法读取响应并获取“WorkflowExternalRef”的值,这是我本次测试的目标。 空手道能读懂吗?