如何在soapUI中将属性作为字符串参数嵌入

时间:2012-07-12 22:36:06

标签: xml soapui

我最近开始使用soapui来测试Web服务并且相当新。我想知道如何在请求中将属性值嵌入为字符串。例如,请求如下所示

<org:Customer org1:Description="customer" org1:DisplayName="google" 
org1:Name="google"/>

基本上我希望这样做,

<org:Customer org1:Description=${#Project#orgdesc}     
org1:DisplayName=${#Project#orgdisplayname}        
org1:Name=${#Project#orgdisplayname}/>

我在项目级别为上面的所有字段定义了属性,用于参数化我的测试。我试图在请求中嵌入这些属性。我尝试了一些事情,但没有一个能奏效。有人可以让我知道我错过了什么吗?

修改#1

我认为我在下面做的不对。因为在上面的原始请求中,Description,DisplayName和Name是Customer的属性,我通过将它们作为下面的子节点来发送请求。这看起来根本不正确。那么如何嵌入我在标签属性中定义的属性的值?

尝试1

  <org:Customer> 
         <arg0>
            <org1:Description>${#Project#orgdesc}</org1:Description>
            <org1:DisplayName>${#Project#orgdisplayname}</org1:DisplayName>
            <org1:Name>${#Project#orgname}</org1:Name>
         </arg0>
  </org:Customer>

尝试2

 <org:Customer> 
             <org1:Description>
              <arg0>${#Project#orgdesc}</arg0>
             </org1:Description> 
             <org1:DisplayName>
               <arg0>${#Project#orgdisplayname}</arg0>
             </org1:DisplayName>
             <org1:Name>
               <arg0>${#Project#orgname}</arg0>
             </org1:Name>
     </org:Customer>

1 个答案:

答案 0 :(得分:2)

我很确定你只有一个太多的&#39;#&#39;符号。

我认为&#39;物业扩张&#39;语法是你需要的。像:

def postResp = context.expand(&#39; $ {PostObject#response}&#39;)

这是来自一个groovy脚本,但我认为groovy在发送之前应用于消息模板,所以:

$ {项目#ORGNAME}

可能就是你所需要的。

修改

在这种情况下,请尝试设置最低范围&#39;来自groovy的变量并在你的消息中使用它。做类似的事情:

def city = context.expand(&#39; $ {#Project#city}&#39;)

context.setProperty(&#34; city&#34;,city)

然后在XML中,输入:

$ {城市}

以下是XML请求的一部分:

  <data:address>
     <data:street>${street}</data:street>
     <data:city>${city}</data:city>
     <data:state>${state}</data:state>
     <data:zipCode>${zip}</data:zipCode>
     <data:country>${country}</data:country>
  </data:address>