SOAPUI属性传输-[错误:意外元素:CDATA]

时间:2019-04-24 16:55:52

标签: xpath soapui property-transfer

我有一个针对API v4的SOAPUI项目。要使用API​​,我需要进行身份验证以获取令牌,然后在后续的API调用中使用该令牌。我正在使用属性传输来获取身份验证令牌并将其存储为自定义属性(与TestSuite相对)。一切正常。

我现在正在使用API​​ v1,并且正在尝试采用相同的方法。但是,当我进行令牌转移时,出现错误:

[Error: Unexpected element: CDATA]

除了以下内容外,来自v1身份验证请求的响应几乎相同:

  • 返回的元素具有初始资本
  • 其中一个名称空间是不同的(按预期引用版本1.0而不是4.0)
  • Content-Length标头是300而不是302(尽管看不到长度的实际差异)

其中没有CDATA元素。

示例响应:

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
   <s:Body>
      <AuthenticateResponse xmlns="http://cse-healthcare.com/API/1.0">
         <AuthenticateResult xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
            <AuthenticationToken>a183577c-52d8-4fa0-a73a-611e6a143d79</AuthenticationToken>
            <Response xmlns:a="http://schemas.microsoft.com/2003/10/Serialization/Arrays"/>
            <Status>
               <Code>EGE00</Code>
               <Description i:nil="true"/>
               <Status>OK</Status>
            </Status>
         </AuthenticateResult>
      </AuthenticateResponse>
   </s:Body>
</s:Envelope>

财产转让:

我使用的//*:AuthenticationToken/text()与v4相同,除了初始资金。

Property Transfer Config

这不是绝对的制胜法宝;我没有进行太多的测试,因此将令牌复制到其他请求不会造成任何损失,但是令人沮丧的是,看起来完全相同的某些东西行不通。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

属性传输步骤针对XML中节点的子级。如果指定的节点不包含任何子节点,则将选择文本节点。如果还有其他子级,则将选择结果层次结构。在任何一种情况下,都可以通过选择“传输文本内容”选项来限制仅传输文本。 其他文档为here

对于您而言,从XPath中删除/text()节点应该可以。