如何在 SoapUI 中将变量插入 "Xpath selection" of 属性 Transfer
How to insert variable into "Xpath selection" of Property Transfer in SoapUI
使用 SoapUI 4.6.1
我有 TestCase,其中包括:
- 测试请求 (1)
- Groovy 脚本
- 属性转账
- 测试请求 (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。
如果有更简单的解决方案,请分享。
使用 SoapUI 4.6.1 我有 TestCase,其中包括:
- 测试请求 (1)
- Groovy 脚本
- 属性转账
- 测试请求 (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。
如果有更简单的解决方案,请分享。