1

我最近开始使用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>
4

1 回答 1

2

我很确定您只是有一个太多的“#”符号。

我认为'属性扩展'语法是你需要的。喜欢:

def postResp = context.expand('${PostObject#response}')

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

${项目#orgname}

可能是你需要的。

编辑

在这种情况下,请尝试从 groovy 设置一个“最低范围”变量并在您的消息中使用它。执行以下操作:

def city= context.expand('${#Project#city}')

context.setProperty(“城市”,城市)

然后在 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>
于 2012-07-13T15:02:49.320 回答