如何在 SoapUI 中将变量插入 "Xpath selection" of 属性 Transfer

How to insert variable into "Xpath selection" of Property Transfer in SoapUI

使用 SoapUI 4.6.1 我有 TestCase,其中包括:

  1. 测试请求 (1)
  2. Groovy 脚本
  3. 属性转账
  4. 测试请求 (2)

我的目标是将变量从 Groovy 脚本的结果传递到 属性 传输的 Xpath 表达式。为了什么?

测试请求(1)响应中,有方案列表:

<...>
 <...>
  <...>
   <scheme_list>
    <scheme>
     <node1>
      ...
     </node1>
       ...
     <nodeN>
      ...
     </nodeN>
    </scheme>

    <scheme>
     <node1>
      ...
     </node1>
       ...
     <nodeN>
      ...
     </nodeN>
    </scheme>

    <scheme>
     <node1>
      ...
     </node1>
       ...
     <nodeN>
      ...
     </nodeN>
    </scheme>
   </scheme_list>
  </...>
 </...>
</...>

Groovy脚本从所有其他方案中找到1个方案,符合我的条件。 脚本的结果-就是这个方案的编号:

...
return i

属性Transfer中,我需要将我找到的方案的所有节点传递给测试请求(2)。所以,我只需要获取此方案的编号并将其传递给 Xpath 表达式。

我认为这很容易:

Source: //scheme_list/scheme[i] 
Target: //scheme

或者我在网上找到的解决方案:

Source: //scheme_list/scheme['+i+'] 
Target: //scheme

但是,不幸的是,它不起作用。我的变量 "i" 位于 Groovy 脚本中,无法传递到某个地方,就像另一个测试步骤 属性 传输。

通过许多问答,我尝试了很多不同的解决方案,但找到了我自己的(我猜)。

//scheme_list/scheme[${path#result}]

其中 path 是脚本名称,result 是结果。

1 条件是您 return 需要作为脚本结果的变量

因此,您可以将变量从脚本传递到 Xpath。

如果有更简单的解决方案,请分享。