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