【问题标题】:How to insert variable into "Xpath selection" of Property Transfer in SoapUI如何将变量插入到 SoapUI 中属性传输的“Xpath 选择”中
【发布时间】:2017-05-10 10:00:05
【问题描述】:

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

  1. 测试请求(1)
  2. Groovy 脚本
  3. 财产转让
  4. 测试请求 (2)

我的目标是将变量从 Groovy 脚本的结果传递给 Property Transfer 的 Xpath 表达式。为了什么?

Test Request (1) Response中,有scheme列表:

<...>
 <...>
  <...>
   <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

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

我认为这很容易:

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

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

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

但是,不幸的是,它不起作用。我的变量“i”位于 Groovy Script 中,不能像另一个测试步骤 Property Transfer 那样传递出去。

【问题讨论】:

    标签: testing xpath groovy soapui


    【解决方案1】:

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

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

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

    1 条件是您返回所需的变量作为脚本的结果

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

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

    【讨论】:

    • 与您所做的类似,让您的脚本将返回值存储在属性中(在属性步骤中)。然后从那里进行财产转移。或者您可以忽略整个属性转移步骤并使用类似于以下的 groovy 脚本代码进行转移: ---- testRunner.testCase.testSteps["StepName"].setPropertyValue("PropertyName", propertyValue)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-03-17
    • 2019-07-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多